如何使用 ssh 通过另一台电脑连接到另一台电脑

如何使用 ssh 通过另一台电脑连接到另一台电脑

我有电脑。

电脑1电脑2位于专用 LAN 上,其中电脑1众所周知电脑2作为192.168.0.2

电脑2电脑3在另一个 LAN 上,其中电脑2众所周知电脑3作为192.168.123.101

我怎样才能连接到电脑1电脑3通过 SSH。

有没有类似的东西:

ssh [email protected] -via [email protected]

答案1

ssh -o 'ProxyCommand ssh -W %h:%p [email protected]'

然后你就可以简单地运行ssh PC1

最好通过别名使用~/.ssh/config

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p [email protected]

对于没有该-W选项的旧版本 OpenSSH(我认为这意味着 ≤5.4),请确保网猫可在 PC2 上使用

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh [email protected] nc %h %p

答案2

使用 SSH 有一个明确的解决方案:

  1. 在您的本地计算机上进行设置,~/.ssh/config使其具有以下内容:

    host WhatYouWillCallTheConnection
        hostname the.gateway.server.address.com
        user YourUsernameOnTheGateway
    
  2. 在您想要连接的网关和终端服务器上,确保您的本地客户端的公钥位于~/.ssh/authorized_keys

  3. 在网关计算机上,您需要进行更改~/.ssh/authorized_keys,以便在指定客户端公钥的行的开头添加强制命令,如下所示:

    command="ssh -A [email protected]" ...yourPublicKey....
    

-A如果您不喜欢一直发送密码,则可以转发代理...

这样,每当您执行类似操作时,ssh WhatYouWillCallTheConnection它都会直接通过网关并将您透明地连接到另一侧的服务器。

答案3

端口转发可能会派上用场。
从 PC1:

~# ssh -fN -L 22:PC3:7777 -l <user> PC2  

7777 可以是任何端口(只要它尚未被使用)。我只是喜欢这个数字,加上我可以通过 +1 管理的任何“订购”(7778、7779 等)。

完成此操作后,您将拥有一条从 PC1 的本地端口 7777 到 PC3 的端口 22 的“透明”隧道。只需发出:

~# ssh -l <user> -p 7777 localhost  

而且你应该在 PC3 上。
如果您希望建立 SOCKS 代理,还可以使用 -D 动态转发端口。

~# ssh -D <someport> -fN -L 22:PC3:7777 -l <user> PC2  

干杯!

答案4

我知道的唯一解决方案是 ssh 脚本贝利尔:

Belier 允许通过 SSH 连接在远程计算机上打开 shell 或执行命令。 Belier 的主要特点是它能够在完成任务之前跨越多个中间计算机。

不久前我发现了这个自述文件.ss​​hhop在麻省理工学院林肯实验室主页上,但我无法找到任何进一步的信息。有人知道更多吗?

相关内容