为什么当我使用ssh远程登录时,git push会导致请求解锁本地机器上的私钥



我经常用ssh将其安装到运行git的开发机器中。我希望此连接与我的本地计算机隔离。

今天,我从一台不同的机器进入了我一直使用的同一台开发机器,每当我运行git-push时,我的本地机器(而不是开发机器(上就会出现一个解锁其私钥的请求。我拒绝了这一点,推送仍然有效,但报告:

sign_and_send_pubkey:签名失败:代理拒绝操作

为什么我在本地机器上得到提示,而不是开发机器本身

ssh中是否存在一些信息泄漏?它是不是在某种程度上没有表面上那么孤立?

我猜,当我在ssh中时,它会设置一些可以从远程访问的东西。它必须像我使用ssh-Y进行X11转发一样。

我觉得这是无害的,而不是恶意的,但通过这种途径可能会有某种攻击吗?

可能与这个问题类似然而,没有提到通过ssh登录,接受的答案也没有真正解释引擎盖下发生了什么。

我想了解ssh和git在内部做了什么。

ssh有一种叫做凭证转发的东西。这个想法是,你的私钥应该受到保护。您可能不希望(或者至少不应该(将它的副本放在您使用的共享服务器上。相反,你应该把它存储在你的控制之下。

因此,如果我ssh到一个dev服务器,然后从那里进行ssh连接(比如,执行scp,或者通过ssh-url访问git(,那么我有两个选择:我可以将密钥放在dev服务器上(它们的另一个副本可能会被泄露(,或者我可以有一些机制来使用我在本地拥有的副本。

ssh将允许您执行其中一项或两项操作。它有一个ssh代理,它会说"嘿,你用ssh到达这里,也许你有你想让我用于其他连接的密钥?">

我对你的设置了解不多,无法说得更具体,但我认为这解决了为什么你的本地密钥是等式的一部分的基本谜团。

最新更新