有时候回需要到ssh tunnel,手动使用ssh 创建这些并没有太大的问题,可是如果尝试开机启动,写个shell脚本并在rc.local里面运行这个脚本并不成功,原因也不得而知。

后来发现了autossh这东东,不单单能够静默模式创建ssh tunnel还能设置自动检测,并自动尝试链接的选项。

本文附件提供的脚本,需要放置在/etc/ini.d/目录下,并使用chmod +x 修改权限。然后也有必要使用update-rc.d service defaults添加入开机启动服务。

当然不要忘记修改脚本中的配置信息。

然后就能够在开机时候自动创建ssh tunnel了。 enjoy it.

#! /bin/bash# For each tunnel; make a uniquely named copy of this template.## SETTINGS
#
# autossh monitoring port (unique)
MPORT=54321
# the ssh tunnel to setup
TUNNEL="-L 2003:localhost:2003"
# remote user
RUSER="socieer"
# remote server
RSERVER="socieer.axxeo.de"
# You must use the real autossh binary, not a wrapper.
DAEMON=/usr/lib/autossh/autossh
#
## END SETTINGSPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binNAME=`basename $0`
PIDFILE=/var/run/${NAME}.pid
SCRIPTNAME=/etc/init.d/${NAME}
DESC="the tunnel"test -x $DAEMON || exit 0export AUTOSSH_PORT=${MPORT}
export AUTOSSH_PIDFILE=${PIDFILE}
ASOPT=${TUNNEL}" -f -N "${RUSER}"@"${RSERVER}#  Function that starts the daemon/service.
d_start() {start-stop-daemon --start --quiet --pidfile $PIDFILE \--exec $DAEMON -- $ASOPTif [ $? -gt 0 ]; thenecho -n " not started (or already running)"elsesleep 1start-stop-daemon --stop --quiet --pidfile $PIDFILE \--test --exec $DAEMON > /dev/null || echo -n " not started"fi}#  Function that stops the daemon/service.
d_stop() {start-stop-daemon --stop --quiet --pidfile $PIDFILE \--exec $DAEMON \|| echo -n " not running"
}case "$1" instart)echo -n "Starting $DESC: $NAME"d_startecho ".";;stop)echo -n "Stopping $DESC: $NAME"d_stopecho ".";;restart)echo -n "Restarting $DESC: $NAME"d_stopsleep 1d_startecho ".";;*)echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2exit 3;;
esacexit 0

转载于:https://blog.51cto.com/zicowarn/1653604

使用autossh实现开机创建ssh tunnel的方法以及shell脚本.相关推荐

  1. 如何在远程 SSH 服务器上运行本地 Shell 脚本

    通过 SSH 运行命令的问题在于,通常您必须自己键入它们或上传脚本文件.但是,通过一些 bash 知识,您可以通过 SSH 传递整个脚本,而无需.sh 在远程计算机上保存该文件. 解决方案:通过标准输 ...

  2. linux ssh最大会话数,Linux Shell 脚本限制ssh最大用户登录数

    我撰写本文原来的意图是想把"复制SSH渠道"和"copy SSH Session"这样的功能从远程ssh客户端中剔除掉.因此想到可以在SSH服务端设置一下,但查 ...

  3. Linux:Ubuntu开机自启动ssh【* Starting OpenBSD Secure Shell server sshd [OK]】

    在.bashrc文件最上端(防止打断其他命令的执行)添加: # 启动ssh服务 sudo service ssh start

  4. java程序ssh置顶_使用shell脚本启动远程(SSH)Java应用程序不会返回本地提示

    我见过类似的问题,所有已解决的问题已经解决/不适用. 我在启动Java应用程序的远程计算机中有一个bash脚本.相关的行将是: #!/usr/bin/env bash ... java -cp /fu ...

  5. win10 linux ssh自动启动,win10子系统 wsl开机启动ssh服务

    win10子系统 wsl开机启动ssh服务 win10子系统 wsl开机启动ssh服务 一.安装ssh服务 说明:虽然已经安装了ssh服务,但是好像默认自带的不能用.所以需要先卸载再安装. 执行以下命 ...

  6. SSH Tunnel隧道

    ssh(secure shell)是一种对数据进行加密安全传输的协议.利用ssh工具可以非常方便的登录远程提供有ssh服务的主机,也可以很方便的进行文件传输.利用 ssh tunnel 可以进行端口转 ...

  7. PostgreSQL performance test use ssh tunnel

    前面一篇BLOG介绍了PostgreSQL ssl数据加密的性能, 相比未加密性能下降得比较厉害. http://blog.163.com/digoal@126/blog/static/1638770 ...

  8. NestJS 6.x折腾记- (0) 开胃菜, TypeORM 连接远程的MySQL(ssh tunnel)及Linux信息过滤裁切基础

    前言 昨天发现的框架,看了下官方文档,号称Nodejs版本的spring(java) 开发模式有ng6既视感,这对有ng经验的小伙伴来说,莫名的亲切- 适合尝尝鲜,目前有1W+ star, 上正式线我 ...

  9. Autossh:自动重启ssh sessions和tunnels

    需要长时间ssh到服务器,为防止长时间没有请求而被服务器自动断开,可以在~/.ssh/config中加入下面的配置: 1 2 Host * ServerAliveInterval 60 其作用是当ss ...

最新文章

  1. 所有机器学习项目都适用的检查清单
  2. JAVA线程池的分析和使用
  3. 团队作业1(陈爽、夏江华、李瑞超、甘彩娈、吕乐乐)
  4. 人体肺活量测试软件,人体肺活量怎么测试
  5. java foreach标签,jstl c:foreach标签
  6. LVS(10)——实现多集群功能
  7. 算法与数据结构(part3)--数据结构概述
  8. View controller-based status bar
  9. Android Service+Socket 联网交互
  10. 语音信号处理基础(五)——语音分帧与加窗
  11. 据说程序员是这样写代码的
  12. 【基础教程】基于matlab生成Word+PPT报告【含Matlab源码 971期】
  13. 基于单片机的指纹密码锁c语言程序,基于单片机的指纹识别电子密码锁设计(附程序,电路图)...
  14. 自己如何选购更换内存条?(超详细)
  15. 前段UI框架 layui 和 amazeui 的对比
  16. 淘宝爬虫:看看房地产拍卖行情怎么样?附可视化分析
  17. android商品详情详解
  18. 计算机辅助翻译和人工翻译的优缺点,计算机辅助翻译的利与弊以及解决方案
  19. 什么是Mbps、Mbs、MBs
  20. ad room 拷贝

热门文章

  1. java和android 语法区别_病症解析:语言发育迟缓和自闭症的联系与区别
  2. python快速入门期末版_史上最全Python快速入门教程,满满都是干货
  3. sounds speech_speech sounds
  4. 无失真压缩法可以减少冗余_混音笔记(七)——压缩器(2)压缩器参数调节方法...
  5. rtsp服务器搭建_直播系统搭建所用到的技术原理
  6. sort list java leetcode_[LeetCode] 148. Sort List Java
  7. php反序列化绕过,【技术分享】PHP反序列化漏洞
  8. myeclipse10.1破解方法
  9. android开发环境教案,01. Android开发环境教案.pdf
  10. 《数据库SQL实战》查找当前薪水详情以及部门编号dept_no