ssh高级用法
ssh高级用法
一、本地端口转发(正向代理)
访问本地的127.0.0.1:8000,实际上相当于访问远程主机自身(192.168.1.15)上监听在127.0.0.1:18789的服务
-N 不执行远程命令,只做端口转发
ssh -N -L 8000:127.0.0.1:18789 root@192.168.1.15
二、远程端口转发(反向代理)
将远程主机192.168.1.71:9000的端口转发到本地,让远程机器可以访问本地localhost:8000的服务
ssh -R 9000:localhost:8000 kk@192.168.1.71
三、动态端口转发(socks代理)
做作为vpn使用
在本地启动一个端口为8000的socks代理,访问本地8000端口的所有流量通过ssh隧道传输
ssh -D 8000 root@192.168.1.10
在A主机启动这个命令,在B主机浏览器通过A的8000端口代理所有流量通过192.168.1.10出去
ssh -D 0.0.0.0:8000 root@192.168.1.10
四、跳板机
通过一台中间服务器连接到目标服务器,适合多层网络环境
我能直接访问192.168.1.112,无法直接访问192.168.8.8,但是192.168.1.112能直接访问192.168.8.8
通过192.168.1.112作为跳板机,ssh访问192.168.8.8,需要输入两次密码,先是跳板机192.168.1.112的密码,然后是目标机器192.168.8.8的密码
ssh -J root@192.168.1.112 root@192.168.8.8
五、x11转发
在远程运行图形应用程序,界面显示在本地
需要本地运行 X Server(Linux 默认,Windows 需 Xming 等),Windows推荐使用MobaXterm连接,可启用x11转发选项
ssh -X root@192.168.1.7
登陆后直接在ssh连接中输入程序的名称,即可在本地启动图形程序
六、远程执行命令
直接在 SSH 命令后附加要执行的命令,不登录交互式 Shell
ssh root@192.168.1.71 "shutdown now"
七、压缩传输
对传输的数据进行压缩,适合慢速网络传输大量文本
备份文件到本地,方便打包日志信息
ssh -C root@192.168.1.15 "tar czf - /data" > backup.tar.gz