这就是我要的:

这就是我要的:

我在使用 ssh proxy 命令时遇到一些问题。代理上的身份验证工作正常,但是当我想登录远程主机时,它失败了。问题似乎是,代理尝试使用我的本地 rsa_key 登录,而不是使用存储在代理上的密钥登录。有没有办法来解决这个问题?

这就是我要的:

本地 -- 本地 rsa --> 代理 -- 代理 rsa --> 主机

我使用的配置文件:

Host 192.168.178.32
HostName 192.168.178.32
User user
Port 22
IdentityFile ~/.ssh/id_rsa.pub

Host 192.168.178.30
HostName 192.168.178.30
User user
Port 22
IdentityFile home/user/.ssh/id_rsa.pub
ProxyCommand ssh -W %h:%p -F ssh_config -p 22 192.168.178

答案1

这可能不是您想听到的答案,但您无法做您想做的事情。

ssh 中的选项ProxyCommand期望命令的 STDIN 和 STDOUT 直接连接到目标主机 ( %h) 和端口 ( %p)。因此,ssh与远程进程通信的是本地进程sshd,而不是代理主机的ssh进程。由于它是ssh与远程通信的本地进程,因此它无法访问代理上的任何 ssh 密钥。

最终你只有2个选择:

  1. 从代理主机复制 ssh 密钥并在本地安装。
  2. 设置ssh在代理上透明执行的本地命令。例如:alias sshp='ssh -t 1.2.3.4 ssh'

相关内容