精华内容
下载资源
问答
  • Autossh
    2021-04-09 20:28:22

    autossh用来帮助ssh程序在中断后自动重连,在建立隧道的场合相当好用

     

     

    使用autossh可以进行反向代理实现内网穿透

    因为 ssh 反向链接会因为超时而关闭,如果关闭了那从外网连通内网的通道就无法维持,为此我们需要结合免密码登录及 AutoSSH 来提供稳定的 ssh 反向代理隧道

     

    更多相关内容
  • Autossh 高度可定制的AutoSSH docker容器。概述jnovack / autossh是一个小型的轻量级映像(约15MB),尝试提供一种安全的方式来建立SSH隧道,而无需在映像本身中包含密钥或链接到主机。 有数千个autossh docker容器...
  • 适用于OpenWrt的Autossh安装,然后 opkg updateopkg install openssh-clientopkg install autossh_1.4d-x_xxxxx.ipk建造如果您使用其他OpenWRT版本,请自己构建:cd进入根目录,然后 # clone the Makefilegit clone ...
  • 使用autossh+阿里云做反向代理笔记,无需任何第三方软件
  • 要求重击Autossh 屏幕awk(可选) sed(可选)这个怎么运作在~/.ssh/config要隧道连接的站点:检测到前缀为'autossh-'的Host声明作为隧道站点的候选者,例如: Host autossh-HOSTNAMEHostname HOSTNAMEUser ...
  • docker-autossh

    2021-04-22 14:45:09
    适用于autossh的Docker映像 基于高山 哑初始化 用法 码头工人cli docker run -d \ --name=autossh \ -v ./sshkey:/private.key:ro \ -v ./known_hosts:/known_hosts:ro \ # optional -p 80:80 \ # change port...
  • autossh:永久SSH隧道

    2021-05-08 17:46:59
    Autossh Node.js的持久SSH隧道安装使用npm npm i -S autossh用法开始const autossh = require ( 'autossh' ) ;autossh ( { host : '111.22.333.444' , username : 'root' , localPort : 64444 , remotePort : 5432} ...
  • #autossh-openwrtopenwrt 官方的 autossh 有bug,所以我在这里做一个分支。
  • ansible-autossh-tunnel-client:在Ubuntu系统(客户端)中设置持久隧道(使用autossh
  • win_autossh_svc 这将安装Windows服务,该服务利用Cygwin的autossh维护到“远程”计算机上端口的反向隧道。 当前配置将隧道指向目标计算机上的3389,并使其在本地计算机上的33890可用。 一些条款: LOCALMACHINE:您...
  • 一个围绕 autossh 的 perl 包装器 动机 autossh是一个漂亮的小 ssh-keepalive-connection-holder。 但是,为 keepalive 传递端口可能很笨拙: assh可以帮助您避免这种情况。 有关更多信息,请参阅 。
  • autossh.tar.gz

    2020-08-22 22:16:09
    autossh.tar.gz,autossh,gpadmin_auto_ssh.sh,account.txt
  • autossh监控

    2015-10-22 21:45:46
    主要是监控autossh,默认的反向连接会出现掉线的情况,主要的表现是程序没有挂掉,但是无法控制,本程序主要是监控这个autossh用的。
  • autossh内网穿透

    2022-05-27 11:51:36
    理论上来上autossh可以转发任意端口的服务,也支持Windows 现在测试内外网穿透 系统 CentOS7.6.1810 一、首先外网服务器配置修改: 这样可以把监听的端口绑定到任意 IP 0.0.0.0 上,否则只有外网的本机 ...

    理论上来上autossh可以转发任意端口的服务,也支持Windows

    现在测试内外网穿透

    系统

    CentOS7.6.1810

    一、首先外网服务器配置修改:

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

    注意:如果只让外网的本机访问就不需要修改此项

    vim /etc/ssh/sshd_config
    
    GatewayPorts yes

    重启ssh:systemctl restart sshd

    二、内网服务器操作:

    1、下载epel源

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    2、 安装autossh

    yum -y install autossh

    3、编写systemctl管理配置文件

    vim /usr/lib/systemd/system/autossh.service
    
    [Unit]
    Description=Auto SSH Tunnel
    After=network-online.target
    [Service]
    User=root
    Type=simple
    PIDFile=/var/run/autossh.pid
    ExecStart=/usr/bin/autossh \
              -o "StrictHostKeyChecking=false" \
              -o "ServerAliveInterval 60" \
              -o "ServerAliveCountMax 10" \
              -M 2222 \
              -NR 5678:172.17.0.41:22 \
              root@172.17.0.100 \
              -p 22 \
              -i /root/.ssh/id_rsa
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    StartLimitIntervalSec=5
    StartLimitBurst=12
    Restart=always
    RestartSec=42s
    [Install]
    WantedBy=multi-user.target

     配置说明:

    [Unit]  # 区块:启动顺序与依赖关系。
    Description=Auto SSH Tunnel  # 当前配置文件的描述信息。
    After=network-online.target  # 表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动
    [Service]  # 区块:启动行为
    User=root  # 定义启动用户
    Type=simple  # 定义启动类型

    PIDFile=/var/run/autossh.pid  # 服务的pid文件路径

    # 定义启动进程时执行的命令
    ExecStart=/usr/bin/autossh \
              -o "StrictHostKeyChecking=false" \  # 连接新主机时不进行公钥确认
              -o "ServerAliveInterval 60" \  # 自动每60秒发送数据,延续ssh会话
              -o "ServerAliveCountMax 10" \  # 10次请求后都没能响应,那么SSH客户端就自动断开连接并退出
              -M 2222 \  # 在本机2222端口监视 SSH 连接状态
              -NR 5678:172.17.0.41:22 \  # -N 意思是不执行远程命令,-R意思是将远程主机(外网服务器)启动5678的端口数据转发到本地(内网服务器)的22端口上

              root@172.17.0.100 \  # 转发的远程主机(外网服务器)ssh连接信息,root用户@外网IP地址
              -p 22 \  # 外网服务器ssh服务的端口
              -i /root/.ssh/id_rsa  # 本地(内网服务器)的密钥


    ExecReload=/bin/kill -HUP $MAINPID  # 重启服务时执行的命令
    KillMode=process  # 定义 systemd 如何停止 autossh 服务
    StartLimitIntervalSec=5  # 用于设置时长
    StartLimitBurst=12  # 用于设置在一段给定的时长内,最多允许启动多少次
    Restart=always  # 定义了 autossh 退出后,Systemd 的重启方式

    RestartSec=42s  # 设置在重启服务(Restart=)前暂停多长时间,跟sshd服务一样
    [Install]  # 区块:定义如何安装这个配置文件,即怎样做到开机启动。
    WantedBy=multi-user.target # 表示该服务所在的 Target。multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

    如果不想配置systemctl管理的话,用于测试执行或者命令行执行

    这里加上 -f  表示后台执行

    autossh \
              -o "StrictHostKeyChecking=false" \
              -o "ServerAliveInterval 60" \
              -o "ServerAliveCountMax 10" \
              -M 2222 \
              -fNR 5678:172.17.0.41:22 \
              root@172.17.0.100 \
              -p 22 \
              -i /root/.ssh/id_rsa

    4、 重新加载systemctl

    systemctl daemon-reload

    5、设置autossh开机自启并启动

    systemctl enable --now autossh

    6、检查端口和服务

    netstat -untpl
    systemctl status autossh

     7、检查远程主机(外网服务器)的端口

    netstat -untpl | grep 5678

    8、远程主机(外网服务器)测试看看是否能连接到内网服务器

    ssh 127.0.0.1 -p 5678

     至此,测试连接正常,内网穿透部署完成

    展开全文
  • autossh init.d脚本在Debian / Raspian引导中生成ssh隧道的脚本用法确保您已经安装了autossh $apt-get install autosshAutossh不允许设置密码,因此您必须将rsa密钥上载到远程服务器。 由于我们没有为autossh配置...
  • ssh服务应用于各种场景,而autossh是ssh的自动模式,安装之后无论开关机还是重启都不会影响ssh的连接,有利于那些使用ssh远程连接服务器的用户。
  • 使用autossh进行远程转发 在B主机执行命令 AutoSSH命令后不登录A主机,关闭B主机终端后隧道不会断开 autossh -M 10000 -f -N -R A主机转发端口:B主机IP:B目的端口 root@A主机 5. 验证稳定性 使用autossh命令后,...

    一、前言

    SSH 是一种建立在应用层基础上的安全协议,利用SSH进行数据传输时也是较为可靠和安全的。当有明文数据传输时,为保障其安全,可以利用SSH隧道对其进行加密安全传输,本文中讲到的SSH隧道用法均可以保障安全传输,文中不详做介绍,本文着重讲解除安全传输之外的其他使用场景,来分别分析三种SSH隧道的用法。

    文中会用到以下SSH参数,先看一下man文档中对以下SSH参数的解释:

    -L port:host:hostport

    将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

    -R port:host:hostport

    将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

    -D port

    指定一个本地机器 “动态的” 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去,根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, ssh 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

    -N

    不执行远程命令. 用于转发端口. (仅限协议第二版)

    -f

    要求 ssh 在执行命令前退至后台. 它用于当 ssh 准备询问口令或密语, 但是用户希望它在后台进行. 该选项隐含了 -n 选项. 在远端机器上启动 X11 程序的推荐手法就是类似于 ssh -f host xterm 的命令.

    -g

    允许远端主机连接本地转发的端口.

    二. 本地转发

    1.功能解释

    本地转发即在A服务器执行ssh命令登录B服务器来启用SSH隧道,以实现通过访问A服务器的转发端口,达到实际访问为B服务器的目标端口的目的。如下图所示:

    2. 使用场景

    当客户端可以访问主机A的任意端口,但由于网络或安全的原因客户端无法访问到主机B的任意端口。如果现在客户端想要访问主机B的某个服务时(如mysql数据库),此时只要主机A可以访问到主机B的SSH端口,这里就可以使用SSH隧道,实现客户端访问主机A的转发端口即可访问到主机B的mysql数据库。

    3. 命令示例

    以下命令均在A主机执行:

    SSH登录后启用ssh隧道,但仅监听A主机127.0.0.1地址,退出ssh登录后隧道断开

    ssh -L A转发port:B主机IP:B目的端口 root@B主机

    SSH命令后不登录B主机,仅启用ssh隧道,仅监听A主机127.0.0.1地址,关闭A主机终端后隧道断开

    ssh -N -L A转发port:B主机IP:B目的端口 root@B主机

    SSH命令后不登录B主机,仅启用ssh隧道,仅监听A主机127.0.0.1地址,关闭A主机终端后隧道不会断开

    ssh -f -N -L A转发port:B主机IP:B目的端口 root@B主机

    指定A主机中ssh隧道转发端口绑定的网卡

    ssh -f -N -L A主机IP:A转发port:B主机IP:B目的端口 root@B主机

    将转发端口绑定至A主机所有网卡

    ssh -g -f -N -L A转发port:B主机:B目的端口 root@B主机

    三、远程转发

    1. 功能解释

    上面我们知道了本地转发是在A服务器执行ssh命令后将转发端口设置在A服务器本身,远程转发则相反,是将转发端口设置在ssh命令的目标服务器上。

    远程转发即在B服务器执行ssh命令登录A服务器来启用SSH隧道,以实现通过访问A服务器的转发端口,达到实际访问为B服务器的目标端口的目的。如下图所示:

    2. 使用场景

    远程转发使用场景较为广泛且实用。

    如果我们在家庭电脑上跑了一个tomcat服务并想提供到互联网访问,由于家庭电脑一般是通过路由器来访问互联网的(即在nat网络中),我们需要在家庭路由器中进行端口映射来实现。

    如果我们是公共路由器没有权限怎么办?又或者在权限管控严格的公司中我们没有权限怎么办?

    巧合的是,我们手上还有一台拥有公网IP的主机(如阿里云主机等),我们的家庭电脑是可以访问到互联网的(即可以SSH访问到拥有公网IP的主机),直接使用SSH隧道就可以解决以上问题。

    3. 命令示例

    以下命令均在B主机执行:

    SSH命令后不登录A主机,仅启用ssh隧道,仅监听A主机127.0.0.1地址,关闭B主机终端后隧道不会断开

    ssh -f -N -R A主机转发端口:B主机IP:B目的端口 root@A主机

    看到这里,你一定会联想到以下两条指令来实现绑定到非lookback地址:

    ssh -f -N -R A主机IP:A主机转发端口:B主机IP:B目的端口 root@A主机

    ssh -g -f -N -R A主机转发端口:B主机IP:B目的端口 root@A主机

    不过当你实验时敲下以下指令,会发现A主机的SSH隧道监听地址仍然是127.0.0.1,这又是为什么呢?

    4. 将远程转发绑定到网卡

    上一小节我们尝试建立远程转发隧道后,仅监听127.0.0.1地址,这是因为在SSH服务的配置文件/etc/ssh/sshd_config中有这样一个配置

    GatewayPorts  是否允许远程主机连接本地的转发端口,默认值为 no。

    将此项配置为yes并重启SSH服务后,再次执行命令

    ssh -f -N -R A主机转发端口:B主机IP:B目的端口 root@A主机

    这时远程转发的转发端口会设置在A主机的所有网卡上,即0.0.0.0

    当然除了这种方法,我们还可以使用其他技术手段来实现允许其他主机访问A主机127.0.0.1地址的转发端口,例如在A主机用其他程序去反向代理127.0.0.1的转发端口,使用Nginx反代实现方式和配置可以点开我的主页,查看《Nginx实现socket代理》这篇文章。

    四、 动态转发

    1. 功能解释

    动态转发即通过配置一个本地端口,将通过隧道的数据转发到目标端地址网络。

    如上图所示,动态转发不像本地转发与远程转发一样转发端口与目标端口是一对一的,动态转发中的转发端口对应的目标是目标主机所在的整个网络。不过使用动态转发访问目标主机所在网络时需要应用程序本身支持代理配置或者使用socket代理工具。

    2. 使用场景

    同样如上图所示,如果存在一个子网1与子网2之间设有防火墙,主机A只能访问到主机B的ssh端口,这时如果主机A或者外部客户端想要访问子网2中的任意IP的任意端口时,可以使用动态转发隧道实现。

    3. 命令示例

    以下命令均在A主机执行:

    SSH命令后不登录B主机,仅启用ssh隧道,仅监听A主机127.0.0.1地址,关闭A主机终端后隧道不会断开

    ssh -f -N -D A主机转发端口 root@A主机

    SSH命令后不登录B主机,仅启用ssh隧道,监听A主机指定网卡IP地址,关闭A主机终端后隧道不会断开

    ssh -f -N -D A主机IP地址:A主机转发端口 root@A主机

    4. 客户端代理配置

    当隧道创建好之后我们需要通过代理客户端进行设置之后才会使用隧道,如果应用程序支持配置直接配置即可,如果是不支持配置代理的应用程序可以使用到socket代理工具来搭配使用,我常用的客户端代理工具是Proxifier,关于用法可以参考我主页的另一篇文章《Socket代理神器客户端Proxifier+服务端ss5》。

    五、AutoSSH

    在实际的使用过程中,如果使用远程转发穿透到内网,ssh隧道将会非常不稳定,隧道会莫名其妙的消失或者失效,特别是在没有固定IP的网络内,本章节讲解使用AutoSSH进行稳定的远程转发。

    1. 下载安装

    ①下载地址

    https://www.harding.motd.ca/autossh/autossh-1.4g.tgz

    ②解压

    tar zxvf autossh-1.4g.tgz

    ③预编译

    cd autossh-1.4g

    ./configure

    ④编译

    make

    编译完成后当前目录下会生成autossh这个文件。

    ⑤至此,autossh安装完成,将authssh文件拷贝到任意目录执行即可使用。

    也可以将autossh文件拷贝到环境变量$PATH中的目录即可实现在任意目录下直接访问autossh。

    2. 参数解释

    AuthSSH只有三个自己的参数:

    -M <port>[:echo_port] 指定要使用的基本监控端口,或者指定要使用的监控端口和回显服务端口。

    -f 使 autossh 在运行 ssh 之前进入后台。注意在autossh中使用到此参数将不会提示输入密码,所以使用此参数需要先配置好公钥登录。

    -V 查看版本号。

    3. 配置公钥登录

    若未配置过公钥登录的朋友可以点开我的主页,参考《SSH登录流程及配置公钥登录》这篇文章。

    4. 使用autossh进行远程转发

    在B主机执行命令

    AutoSSH命令后不登录A主机,关闭B主机终端后隧道不会断开

    autossh -M 10000 -f -N -R A主机转发端口:B主机IP:B目的端口 root@A主机

    5. 验证稳定性

    使用autossh命令后,autossh会打开另一个ssh进程创建隧道,我们尝试kill14837进程后,再次ps查看进程时发现autossh立即又打开了另一个ssh进程创建了隧道,并且测试隧道使用正常。

    参考:

    朱双印个人日志《ssh端口转发:ssh隧道》

    写在最后:

    如有错误,请评论告知,多多包涵,谢谢!

    您也可以关注我的微信订阅号获取更多文章

     

    展开全文
  • autossh-1.4e

    2015-08-11 00:55:38
    autossh 1.4e autossh 是一个用来启动 ssh 并进行监控的程序,可在需要时重启 ssh,例如程序挂掉或者是网络出现问题。
  • autossh安装和连接

    2021-07-22 12:41:45
    安装autossh yum install -y autossh 创建公钥和密钥 ssh-keygen 密钥拷贝到跳转服务器 ssh-copy-id -p 15178 root@148.70.111.203 自动检测脚本 #!/bin/sh ps -fe|grep autossh | grep '148.70.111.203' | grep ...

    公网主机配置

    修改公网机器A的SSH配置文件/etc/ssh/sshd_config

    GatewayPorts yes
    

    这样可以把监听的端口绑定到任意IP 0.0.0.0上,否则只有本机127.0.0.1可以访问。
    改完记得要重启ssh服务。

    内网主机配置

    创建公钥和密钥

    ssh-keygen
    

    密钥拷贝到跳转服务器

    ssh-copy-id -p 15178 root@148.70.111.203
    

    拷贝autossh源码到本地

    scp -P 15178 root@148.70.111.203:/root/autossh-1.4e.tgz /root/
    

    安装autossh

    tar -xf autossh-1.4e.tgz
    cd autossh-1.4e
    ./configure
    make
    make install
    

    自动检测脚本

    #!/bin/sh
    REMOTE_HOST="101.42.252.230"
    REMOTE_PORT="15178"
    LOCAL_HOST="192.168.21.135"
    LOCAL_PORT="22"
    ps -fe|grep autossh | grep $REMOTE_HOST | grep -v grep
    if [ $? -ne 0 ]
    then
    echo "start process....."
    /usr/local/bin/autossh -p $REMOTE_PORT -M 6776 -NR *:6076:${LOCAL_HOST}:${LOCAL_PORT} root@${REMOTE_HOST} &
    else
    echo "runing....."
    fi
    

    添加可执行权限

    chmod +x /etc/autossh.sh
    

    编辑crontab

    * * * * * /etc/autossh.sh > /tmp/auto.log
    
    展开全文
  • 点击下方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!AutoSSH 是一种用以对 SSH 登录进行安全地自动化的软件。!比如我们在 host2 机器上面部署...
  • autossh实现内网穿透

    2022-01-16 19:22:25
    autossh配置稳定的反向代理
  • autossh 实现反向隧道

    2021-06-14 14:08:39
    autossh 实现反向隧道前提条件安装cygwin配置ssh把autossh做成系统服务 前提条件 有一个公网IP的云主机 安装cygwin 安装cygwin是为了安装autossh, 如果是macos或者其它linux平台, 可以跳过这一步。 从cygwin....
  • 我们总会遇到长时间连接ssh后会自动断开需要重连的情况,之前我们都是使用screen来保证ssh不断线,现在有了一个更加给力的工具--autosshautossh 是在ssh的基础之上,增加了一个监控端口,防止ssh session 过期,...
  • autossh 的正确用法

    2021-01-14 04:54:35
    以前用 autossh 的时候,只是简单的用了一个 -N 参数。...export AUTOSSH_PIDFILE=/var/run/autossh.pidexport AUTOSSH_POLL=60export AUTOSSH_FIRST_POLL=30export AUTOSSH_GATETIME=0export AUTOSSH_DEBUG=...
  • 在Server2上配置autossh的开机自启动三、PC连接目标机Server2实现远程管理1. PC端连接2. PC连接Server2后的验证 一、组网说明 Server1为公网上的一台服务器(拥有公网地址,公网可达)。Server2为内网的一台...
  • Linux用户都需要经常访问SSH服务器,因此,为了方便我们的使用,不少用户会在自己的电脑上安装autossh,它可以帮助我们管理SSH会话、自动重连和停止转发流量。那Linux用户都需要经常访问SSH服务器,因此,为了方便...
  • 在Linux下安装autossh的教程

    千次阅读 2021-05-12 13:00:45
    autossh 是一款开源工具,可以帮助管理SSH会话、自动重连和停止转发流量。autossh会假定目标主机已经设定无密码SSH登陆,以便autossh可以重连断开的SSH会话而不用用户操作。只要你建立反向SSH隧道或者挂载基于SSH的...
  • 如何在 Windows 上安装 Autossh服务

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,429
精华内容 571
关键字:

Autossh