SSH 代理命令执行问题

SSH 代理命令执行问题

我正在跟进此资源设置类似 ssh 的代理服务器

我的设置与帖子中提到的完全一样:

Remote Server A
Machine-1
Machine-2

Machine-1 是堡垒服务器,我可以从它通过 ssh 连接到远程服务器(使用身份文件)

Machine-2 可以使用密码连接到 Machine-1。

要求:

通过 Machine-1 从 Machine-2 连接到远程服务器(A)

Machine-2 <--> Machine-1 <--> Remote Server(A)

以下是我的命令(从 machine-2 运行此命令)

ssh -o "ProxyCommand=ssh -W user2@%h:%p user1@machine-1" user2@remote_server 

但我还没有看到成功。

我在

channel 0: open failed: connect failed: nodename nor servname provided, or not known
stdio forwarding failed
kex_exchange_identification: Connection closed by remote host 

我并不经常这样做,所以我不知道哪里出了问题。但根据资源,我认为完成的步骤是正确的。

答案1

你不需要user2@中的部分ProxyCommand。这应该可行:

ssh -o "ProxyCommand=ssh -W %h:%p user1@machine-1" user2@remote_server

但是,为此编写配置可能更容易。此外,如果您使用ProxyJump而不是ProxyCommand,配置将更易于阅读。将这些行写入您的~/.ssh/config文件:

Host machine-1
User user1

Host remote_server
User user2
ProxyJump machine-1

之后,您只需发出ssh remote_server命令即可登录remote_server,用作machine-1垫脚石。

相关内容