我的目标是,如果可能的话,通过
$ ssh 终端主机
因为我需要一个 ssh 连接来通过隧道连接到 mysql,所以端点可以建立但跳跃主机不能。
TL; DR
我实际上正在寻找一种方法来.ssh/config
让我做
ssh 终端主机
在幕后
ssh -t 跳跃主机 ssh 终端主机
当幕后行动
Macbook -> hop-user@hop-host (id_rsa authentication) -> end-host-user@end-host (id_rsa authentication)
其中,终端主机、终端主机用户和终端主机的身份文件在/home/hop-user/.ssh/config
跳跃主机上已知并定义。
苹果笔记本~/.ssh/config
Host hop-host
User hop-user
Hostname valid.tested.public.ip.address.to.hop.host
IdentityFile ~/.ssh/id_rsa
Host end-host
HostName end-point-hostname-as-defined-on-hop-host
ProxyCommand ssh -W %h:%p hop-host
~/.ssh/config
为 hop-user 提供Hop Host Cent OS
Host end-point-hostname-as-defined-on-hop-host
HostName valid.tested.internal.ip.address.to.end.host
User end-host-user
IdentityFile ~/.ssh/keys/endhost
需要注意的限制:我无法更改跳跃/结束主机上的任何配置,并且我也没有nc
在这些主机上安装。
给定配置的当前问题
$ ssh end-host
通道 0:打开失败:管理禁止:
打开失败 ssh_exchange_identification:远程主机关闭连接
有用的东西:
$ ssh -t hop-host ssh 端点主机名如跳跃主机上定义的
正确地提示我 end-host-bash$ 并允许我从那里做任何我想做的事情
我尝试过不起作用或部分起作用的方法
1)更改 Macbook~/.ssh/config
终端主机的 HostName 和 User 配置
Host end-host
HostName valid.tested.internal.ip.address.to.end.host
User end-host-user
ProxyCommand ssh -W %h:%p hop-host
$ ssh 终端主机
[电子邮件保护]的密码:
而我显然没有。我猜是因为 hop-host 的.ssh/config
不是红色的。
2)更改 Macbook~/.ssh/config
终端主机的 ProxyCommand 配置
Host end-host
ProxyCommand ssh -t hop-host ssh end-point-hostname-as-defined-on-hop-host
$ ssh end-host
不会分配伪终端,因为 stdin 不是终端。 不会
分配伪终端,因为 stdin 不是终端。
: 未找到命令2.0-OpenSSH_6.2
ls
^CKilled by signal 2。
bash 返回了一个输入选项,但没有显示我的命令。
我知道这是因为有一个-o ProxyCommand="the command in .ssh/config in the right host"
后台调用,但我可能不太了解它的实际工作原理。