SSH proxycommand 不在同一局域網的機器ssh直連


本地和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"

使用場景

  1. vscode 進行遠程開發

  2. ansible 通過跳板機執行

  3. 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服務端。

image

refer

SSH端口轉發(本地轉發、遠程轉發、動態轉發)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM