我在手机上使用 JuiceSSH,PC 上有相当长的 ssh 配置文件。如果我在 PC 上通过 ssh 连接到堡垒服务器,则无法通过 SSH 连接到任何后续服务器。使用手机则可以。这表明每次跳跃都在使用手机上的身份。
可以让我的 Mac 做到这一点吗?目的是在 2 台服务器之间传输 1 个大文件,每台服务器都有自己的堡垒,而无需将文件临时存储在我的 Mac 上。
答案1
听起来 JuiceSSH 正在为您执行代理转发。OpenSSH 也可以做到这一点。OpenSSH 默认不执行代理转发,因为允许您连接的机器使用您的密钥存在安全风险。
在使用代理转发之前,您需要确保您有一个代理。您可以通过运行以下命令来验证您是否有代理:
ssh-add -l
如果它响应一个或多个键的列表,则代理已准备好使用。在这种情况下,您可以简单地传递-A
给您的ssh
命令,例如:
ssh -A host.example.com
您可能会看到另外两种可能的回应ssh-add
$ ssh-add -l
The agent has no identities.
这意味着您有一个代理,但它没有任何密钥。在这种情况下,您可以使用 加载密钥ssh-add
。如果您不提供任何参数,它将从所有默认位置加载密钥。您还可以提供要加载的密钥文件的名称作为参数。
其他值得了解的参数ssh-add
包括-t
指定您希望密钥在代理中保留多长时间,然后代理才会忘记它。-c
这将导致代理在每次使用密钥之前请求确认。
将它们组合起来可能看起来像:
ssh-add -c -t1h ~/.ssh/id_rsa
另一个可能的错误信息ssh-add
是:
$ ssh-add -l
Could not open a connection to your authentication agent.
这意味着您没有运行代理。您需要先启动代理,然后才能加载任何密钥。启动代理的一种方法是
ssh-agent bash
这将启动代理和bash
shell。代理将保持运行,直到您bash
再次关闭该 shell。