使用我通过 SSH 连接的计算机的密钥?

使用我通过 SSH 连接的计算机的密钥?

我目前有一个系统,我使用桌面连接到网关,然后从那里连接到多个服务器。我的桌面的 ssh 密钥位于网关和其他服务器中,我正在从使用该连接的桌面运行脚本,其中包含以下内容

ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

问题是,当我从家用电脑连接到主桌面并使用相同的脚本时,即使我在连接到桌面时不使用 -A,它也会尝试使用家用电脑的 ssh 密钥。有没有办法指定在进行连接时要使用哪个 ssh 密钥?

我试过

ssh -i ~/.ssh/id_rsa -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

但还是不行。我没有用 -A 连接主机,我只是这样做ssh -i .ssh/loac_id_rsa user@main

答案1

这很奇怪。你可能在 .ssh/config 文件中有什么东西?

尝试执行

ssh-add ~/.ssh/id_rsa

当您到达桌面时

编辑:

如果没有的话就ssh-agent -s先尝试 eval。

由于这样做有效:

-A表示“连接到身份验证代理”。您的网关当然需要在您的桌面上运行身份验证代理,以便将您的连接转发到受保护的主机。当您使用图形界面登录桌面时,身份验证代理可能会自动启动,但显然当您使用 ssh 登录时,它不会像您希望的那样工作(它只接受您的主密钥,而 ssh-add 不起作用)。因此,您启动一​​个新的并连接到它,添加您的密钥,它就可以正常工作了。

你可以简化一下并替换

home$ ssh -i .ssh/loac_id_rsa user@main
desk$ eval `ssh-agent -s`
desk$ ssh-add ~/.ssh/id_rsa
desk$ ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

home$ ssh -i .ssh/loac_id_rsa user@main ssh-agent bash
desk$ ssh-add ~/.ssh/id_rsa
desk$ ssh -A $GATEWAY "ssh $SERVER \"./myscript $OPTIONS\""

或者如果你经常这样做,你可以尝试一下其中的内容~/.ssh/rc(但要小心,因为如果你破坏了某些东西,也许你将无法通过 ssh 登录,你必须通过登录控制台来修复)。

相关内容