我有一个 2 层深的 ssh 网络。我有服务器 myserv.co.uk
和服务器 B
。我通过 .ssh/config 文件给 myserv.co.uk
一个别名,叫做 A
。服务器 A 受密码保护,一旦进入服务器 A,我就可以 ssh B
而无需使用密码。
我在本地机器上使用了 ssh-keygen
并复制到服务器 A 上,这样我就可以成功地执行 ssh A
而不必使用密码。
一切顺利。但是,我需要直接通过 ssh/scp 连接到服务器 B。关于如何执行此操作有很多内容,我已尝试实现。我有以下 .ssh/config
:
Host A
User first.last
Hostname myserv.co.uk
Host B
User first.last
ProxyCommand ssh -W B:22 A
所以当我执行 ssh B
时,系统会要求我输入密码。这不应该发生在服务器 A 中,默认情况下我可以在没有密码的情况下通过 ssh 连接到服务器 B。这是输出:
$ ssh B
Welcome to myserv
This system is for authorised users, if you do not have authorised access
please disconnect immediately.
Password:
我输入服务器 A 的密码,这有效。我认为是这种情况,因为它是用户 first.last
的密码。
但是,假设在服务器 A 中,我可以在没有密码的情况下通过 ssh 进入服务器 B,并且我可以使用 keygen 从本地 ssh 到服务器 A,为什么在执行 ssh B< 时要求我输入密码
?
最佳答案
您是否将自己的公钥复制到两台服务器上的授权 key ?
你可以用 ssh-copy-id 来完成
关于linux - 正确的 .ssh/config 设置以跳 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31328809/