Ubuntu 使用 SSH 代理跳转
一、ProxyJump 一步直达
ssh -J userB@B_host userA@A_hostssh -J userB@B_host:22 userA@A_host -p 22nano ~/.ssh/config(权限建议设为 0600)Host jumpbox
HostName B_host
User userB
Port 22
Host targetbox
HostName A_host
User userA
Port 22
ProxyJump jumpbox
ssh targetbox二、旧版 OpenSSH 使用 ProxyCommand 兼容
ssh -o ProxyCommand="ssh userB@B_host nc %h %p" userA@A_host
Host targetbox
HostName A_host
User userA
Port 22
ProxyCommand ssh userB@B_host nc %h %p
sudo apt install netcat-openbsd),或改用其他命令(见下一节)。三、通过 HTTP/HTTPS 或 SOCKS 代理跳转
sudo apt-get update && sudo apt-get install connect-proxyssh -o ProxyCommand="connect -S 127.0.0.1:1080 %h %p" user@target_host
Host target_via_proxy
HostName target_host
User user
ProxyCommand connect -S 127.0.0.1:1080 %h %p
四、常见扩展与排错
ssh -J user1@hop1,user2@hop2 user3@dest;或在配置中使用 ProxyJump jump1, jump2。autossh -M 2000 -N -f -L 2222:A_host:22 userB@B_host,随后 ssh -p 2222 userA@localhost 连接目标。sshd_config 中 AllowTcpForwarding yes,默认通常为开启;修改后 sudo systemctl restart sshd)。~/.ssh/authorized_keys)。