网络不稳定下的ssh自动重连

前言

在网络不稳定时ssh会经常断开,
目前的方法是使用tmux防止断开后造成进程挂起,
但对断开一事束手无策.
因此希望有东西能够达到以下目的

  • 断开自动重连
  • 自动输入密码
  • 自动恢复session

工具

  • autossh 通过添加监听用端口和接收用端口,完成自动重连,
    但目前不知道是否能恢复session
  • expect 自动重连过程中提问密码时自动输入密码

实现

set pass "123456"
spawn autossh -M 12345 <host-name>

expect "*?assword:*"
send "${pass}\r"

expect eof

保存为 autoconnecthost.exp
使用

1
expect autoconnecthost.exp

开始连接