我有一台笔记本电脑,其 ssh 密钥已添加到 github。我可以从这台笔记本电脑上毫无问题地使用我的任何存储库。
我也有一台台式电脑,但是这台电脑的 ssh 密钥是未添加到 github。
我想从台式计算机通过 ssh 进入我的笔记本电脑并从那里工作,但是,在执行 ssh 时我无法使用 git,因为即使我已登录到我的笔记本电脑,git 似乎也在使用我的台式计算机的 ssh 密钥。
我该怎么做才能强制 git 使用我正在 ssh 连接的机器的 SSH 密钥?
编辑:我没有在其他终端连接到 git。
下面是一个例子。我连接到 github(通过 ssh)来检查哪个用户通过了我的 ssh 密钥的身份验证。
所有这些命令都在我的台式电脑的同一个终端中运行:
(base) gonzalo@DESKTOP:~$ hostname
DESKTOP
(base) gonzalo@DESKTOP:~$ ssh [email protected]
Hi Gonzalo933! You've successfully authenticated, but GitHub does not provide shell access.
(base) gonzalo@DESKTOP:~$ ssh laptop
(base) gonzalo@laptop:~$ hostname
laptop
(base) gonzalo@laptop:~$ ssh [email protected]
Hi Gonzalo933! You've successfully authenticated, but GitHub does not provide shell access.
正如你所见,尽管我通过 ssh 登录到我的笔记本电脑,但我仍然是 github 用户“Gonzalo933”
现在这些命令在我的笔记本电脑上物理运行
(base) gonzalo@laptop:~$ hostname
laptop
(base) gonzalo@laptop:~$ ssh [email protected]
Hi gonzalo*****! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
现在,尽管它是我之前通过 SSH 连接的同一台机器,但用户已经不同了(出于隐私原因,我隐藏了部分名称)
答案1
看起来这个答案是倒着说的。你可以找到原文在它的历史上!
您指出您通过 SSH 连接到的主机以某种方式使用了本地主机上的 SSH 密钥。基本上只有一种情况可能发生:在某处启用了 SSH 代理转发。检查~/.ssh/config
和/etc/ssh/ssh_config
。
你可以使用 找到证据ssh -v
。在远程 shell 启动之前,如果启用了代理转发,它将打印此行:
debug1:请求身份验证代理转发。