ssh 跳转主机和 scp

ssh 跳转主机和 scp

我最近通过 openconnect 客户端建立了家庭/工作 VPN 连接(我不知道这是否重要),并且我能够登录到工作中的各个网关机器,但我无法 scp 或 rsync 到这些网关后面的任何东西。

因此,我可以执行 a ssh gateway,然后,在我进入服务器后,我可以执行ssh work_machine。因此,标准的交互式 ssh 可以正常工作。接下来,我尝试 scp 和 rsync 到工作机器。为了实现这一点,我在.ssh/配置

Host work_machine
    Hostname work_machine_hostname
    ProxyJump gateway
    User user

但是,尝试执行此操作scp /local/path/file work_machine:/remote/path时会挂起。rsync 也会发生这种情况。

有人知道发生了什么事吗?

更新

我也尝试过隧道技术。我建了一条隧道到网关,同时保持跳转主机配置工作机器。我再次可以 ssh 进入工作机器,但我无法 scp 或 rsync 到它。

我想我会回到旧的隧道技术,直到其他实用程序赶上来。这是一个额外的脚本,用于在本地机器上设置端口,但它很可靠。

顺便说一下,Ubuntu 16.10 上的 ssh 客户端是 7.3p1。

更新2

完全移除跳跃主机并返回隧道。

所以,

ssh -f -N -L 12345:gateway1:22
ssh -f -N -L 12346:gateway2:22 gateway1

Host tgateway2
    Hostname localhost
    Port 12346
    User user

现在最后一条隧道,

ssh -f -N -L 12347:work_machine tgateway2

Host twork_machine
    Hostname localhost
    Port 12347
    User user

此设置曾经使我能够直接访问 twork_machine,即使它隐藏在两台网关机器后面。scp 和 rsync 也曾经可以工作。现在只有交互式 ssh 可以ssh twork_machine工作,但没有 scp 和 rsync。scp 命令只是挂在步骤scp -v -t(来自 的详细输出scp somefile twork_machine:

答案1

ssh/scp/rsync 方面一切正常。导致问题的是,work_machine 上的默认 csh shell 的 .login 文件设置为加载 bash(通过 bash -l)。出于某种原因,这种 shell 切换混淆了 scp 和 rsync,但不会混淆 ssh。

相关内容