zoukankan      html  css  js  c++  java
  • 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端口转发(本地转发、远程转发、动态转发)

  • 相关阅读:
    浏览器缓存机制
    关于CSRF的攻击
    关于CGI、FastCGI和PHP-FPM的关系
    PHP-FPM进程数的设定
    一个论坛引发的血案
    Django中的权限系统
    Django中使用ModelForm实现Admin功能
    Django中使用Bootstrap
    Django的用户认证
    vtkMapper
  • 原文地址:https://www.cnblogs.com/hiyang/p/12631742.html
Copyright © 2011-2022 走看看