![这就是我要的:](https://linux22.com/image/90509/%E8%BF%99%E5%B0%B1%E6%98%AF%E6%88%91%E8%A6%81%E7%9A%84%EF%BC%9A.png)
我在使用 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个选择:
- 从代理主机复制 ssh 密钥并在本地安装。
- 设置
ssh
在代理上透明执行的本地命令。例如:alias sshp='ssh -t 1.2.3.4 ssh'