Luc*_*cas 39 ssh multiple-machines
为了到达我办公室的机器,目前我正在这样做:
me@home:~$ ssh unix.university.com
me@unix:~$ ssh unix.department.univeristy.com
me@unix.department:~$ ssh office-machine.department.university.com
me@office-machine:~$ echo "This is very annoying"
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以自动化这个过程,也许我可以在最后使用一个命令?
Aar*_*own 36
是的,有一个很好的方法可以使用 ssh ProxyCommand 和 netcat
把这样的东西放在你的 .ssh/config 中
Host *.department.university.com
User me
ForwardAgent yes
ProxyCommand ssh unix.university.com nc %h %p
Run Code Online (Sandbox Code Playgroud)
这将使用跳转/堡垒主机 unix.university.com 直接登录到任何 .department.university.com 服务器。您可能还需要直接用于 unix.university.com 的节。
这是一个解释其工作原理的链接:http : //backdrift.org/transparent-proxy-with-ssh
使用这种技术,您现在可以编写
ssh unix.department.university.com
Run Code Online (Sandbox Code Playgroud)
它会直接出现。rsync、scp 等工具(ssh 堆栈中的任何内容)也可以透明地工作。
amp*_*ine 33
您可以使用 ssh 客户端在登录时在远程机器上执行 ssh。
ssh -t unix.university.com \
ssh -t unix.department.univeristy.com \
ssh -t office-machine.department.university.com
Run Code Online (Sandbox Code Playgroud)
(我包含-t在调用中的原因是因为 ssh 给了我错误:当我在自己的机器上尝试时,stdin 不是终端;你的机器可能不同。)
当您从最后一个 shell 退出时,该进程将连锁退出,从而节省您Ctrl-D一遍又一遍的输入。
Mii*_*kka 10
在 OpenSSH 7.3 中,ssh 添加了-J命令行标志和相应的ProxyJump配置选项来解决这个问题。
将您希望通过 ssh 的主机作为逗号分隔的列表提供给-J. 例如:
ssh -J unix.university.com,unix.department.university.com \
office-machine.department.university.com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8974 次 |
| 最近记录: |