autossh 实现反向隧道

autossh 实现反向隧道autossh实现反向隧道前提条件安装cygwin配置ssh把autossh做成系统服务前提条件有一个公网IP的云主机安装cygwin安装cygwin是为了安装autossh,如果是macos或者其它linux平台,可以跳过这一步。从cygwin.org下载cygwin安装文件开始安装,安装源我用的是163,如果源列表里没有找到,可以手动添加http://mirrors.163.com/cygwin安装包选择autossh和openssh安装结束后生成一下ss

前提条件

  • 有一个公网IP的云主机

安装cygwin

安装cygwin是为了安装autossh, 如果是macos或者其它linux平台, 可以跳过这一步。

  1. 从cygwin.org下载cygwin安装文件

  2. 开始安装,安装源我用的是163, 如果源列表里没有找到, 可以手动添加http://mirrors.163.com/cygwin

  3. 安装包选择autossh和openssh

  4. 安装结束后生成一下ssh的key, 为免密登录所必须

    以下命令在windows的cmd窗口执行, 目的是把cygwin的ssh目录射映到windows系统

    mkdir %userprofile%\.ssh
    mklink /J  "c:\cygwin64\home\xxx\.ssh" "%userprofile%\.ssh"
    

    然后生成ssh的key文件,以下命令在cygwin的bash执行

    ssh-keygen
    

    将key文件安装到无端有公网ip的机器

    ssh-copy-id -p 22 xxx@###.###.###.###
    

    之后测试一下,可以免密登录就是成功

配置ssh

  1. 编辑云主机的/etc/ssh/sshd_config文件

    GatewayPorts yes
    

    这样可以把监听的端口绑定到任意 IP 0.0.0.0 上,否则只有本机 127.0.0.1 可以访问。

    重启 sshd 服务

    sudo service sshd restart
    
  2. 在windows主机上,在%userprofile%\.ssh目录下面新建一个config文件,内容参考如下

    Host myhost                                  //自定义,主机的连接名
      Hostname ###.###.###.###                   //无端服务器的公网IP
      Port 22                                    //端口
      User xxx                                   //登录云主机的用户名
      IdentityFile ~/.ssh/id_rsa                 //key文件
      RemoteForward 3389 localhost:3389          //remoteforward是反向隧道, 3389是要在云主机上开的端口,localhost:3389是本机的端口
      ServerAliveInterval 100                    //保持连接
    
  3. 用ssh测试一下

    ssh myhost
    
  4. 用autossh测试一下

    AUTOSSH_DEBUG=1 autossh -M 4000 myhost 
    

    以上参数不解释了,请自行baidu吧

    经过以上就完成了所有配置,以上步骤是在云服务器开了一个远程桌面的3389端口,如果从客户机连接这个3389端口,流量会导到它后面那台windows的主机

把autossh做成系统服务

把autossh做成系统服务,开关机后自动重连

  1. 开一个有administrator权限的cmd

  2. 运行如下命令

    cd \cygwin64\bin
    cygrunsrv -I AutoSSH --path \cygwin64\bin\autossh.exe -a "-M 4000 myhost -N" -e AUTOSSH_DEBUG=1 -e AUTOSSH_LOGFILE=/var/log/autossh.log -e AUTOSSH_NTSERVICE=1
    
  3. 以上成功后在services.msc里可以看到autossh的一个系统服务,右键点它, 改变logon里的执行用户为当前操作用户,这一步和cygwin里的key有关,只有这一步设置正确了才可以启动服务

今天的文章autossh 实现反向隧道分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11342.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注