Sea*_*mIT 7 linux ssh ssh-tunnel
Local Computer (Fedora) --SSH--> Server1 --SSH--> Server2
Run Code Online (Sandbox Code Playgroud)
在我工作的某些环境中,我们必须使用“跳转框”,您可以通过 ssh 连接到一台服务器,以便到达另一台服务器。有没有一种快速的方法可以做到这一点,也许是通过编辑 ~/.ssh/config,这样每当我从本地计算机 ssh 到 Server2 时,它都会自动创建到 Server1 的必要连接?我可以设置密钥,以便在必要时不会提示我输入 Server1 的密码。
您可以使用如下命令:
$ ssh -t user@server1 ssh user@server2
Run Code Online (Sandbox Code Playgroud)
此命令将您通过 server1 ssh 连接到 server2。系统将提示您连续输入两个密码以登录 server1,然后登录 server2。如果您设置了所需的 SSH 密钥,您应该会自动登录到 server2。
这在您无法直接登录 server2 时非常有用。
此类功能已添加到 OpenSSH 5.4 版中,可以通过执行以下操作来使用
ssh -W server2 server1
Run Code Online (Sandbox Code Playgroud)
server2您的预期目的地在哪里,server1您的代理主机在哪里。您可以通过使用ProxyCommandssh 配置中的选项来简化此操作,例如:
host = *.example.com
user = packs
port = 22
ProxyCommand ssh -W %h:%p server1
Run Code Online (Sandbox Code Playgroud)
我也看到它使用 netcat 完成,所以使用与上面相同的示例
ssh server1 nc -q0 server2 22
Run Code Online (Sandbox Code Playgroud)
同样,这也可以在您的 ssh 配置中使用,除了替换ProxyCommandas
ProxyCommand ssh server1 nc -q0 %h %p
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |