TL; DR

TL; DR

我的目标是,如果可能的话,通过

$ 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"后台调用,但我可能不太了解它的实际工作原理。

相关内容