本地和192.168.1.10不在同一個網絡,可以通過jumpserver跳轉過去,操作如下
選項
- -L 本機端口
- -f 后台啟用,可以在本機直接執行命令,無需另開新終端
- -N 不打開遠程
shell
,處於等待狀態,不跳到遠程主機,還在主機上,只是搭好了隧道,橋搭好,不ssh上去 - -g 啟用網關功能
- -R 服務端口
配置
Host jumpserver
HostName 1.1.1.1
User root
Port 12321
Host node15
HostName 192.168.1.10
ProxyCommand ssh -q -W %h:%p jumpserver
在ansible的配置文件里面也可以直接用-o選項來進行配置
ssh_args = -o "ProxyCommand ssh -W %h:%p root@192.168.1.60"
使用場景
-
vscode 進行遠程開發
-
ansible 通過跳板機執行
-
rsync同步數據
rsync -vrtopz --progress -e ' ssh -ax -c blowfish ' xx@ip1:/data/ /data1/
示例
$ ssh –L 9527:telnetsrv:23 -N sshsrv
$ telnet 127.0.0.1 9527
流程解釋
當訪問本機的9527的端口時,被加密后轉發到sshsrv的ssh服務,再解密被轉發到telnetsrv:23
data < >localhost:9527 < > localhost:XXXXX < > sshsrv:22 < > sshrv:yyyyy < > telnetsrv:23
數據一旦telnet
以后,數據會發送到本機9527端口,再在本機開一個隨機端口,充當ssh
客戶端,再把數據流量發送到22端口的sshsrv服務端。sshsrv收到數據以后,解密數據,臨時開一個隨機端口充當ssh客戶端,再把流量發送到23端口telnet服務端。