奇怪的行为多跳 ssh

奇怪的行为多跳 ssh

我有三台机器 A、B、C。目的是能够将文件从 A 传输到 C。我可以通过 ssh 访问从 A 到 B,以及从 B 到 C;B 和 C 在本地网络上。这可以通过选项实现,scp -o ProxyCommand并且有效。但在我偶然发现这个解决方案之前,我尝试了一种ssh -L不起作用的方法。问题找到了,但解决方案却没有找到。首先,通过 B 从 A 到 C(在 A 上)设置了一个 ssh 本地重定向,如下所示:

ssh -p 8888 -L 5022:userC@hostC:22 userB@hostB

使用 ssh 在 A 上验证/测试:

ssh -p 5022 userC@localhost

这不符合 A 的说法:

ssh_exchange_identification: Connection closed by remote host

/var/log/auth.log在 B 上说:

sshd[9873]: error: connect_to userC@hostC: unknown host (Temporary failure in name resolution)

我已经验证是 hostC 后的冒号 (:) 导致了错误,但还没有找到解决这个问题的方法。任何想法都会有用。

谢谢

答案1

-L用于端口转发。

格式为-L port:host:hostport

无论您尝试通过向主机名规范中添加用户名做什么-L 5022:userC@hostC:22都是不正确的。

——————————————————————-

最简单的从主机 A 经由主机 B 到主机 C 进行多跳 ssh 的方法是使用-J较新 ssh 版本中提供的ProxyJump 命令开关

 ssh -J userB@hostB userC@hostC

或者使用 scp

 scp -o 'ProxyJump userB@hostB' file userC@hostC:/path/

相关内容