SSH自动重启远程隧道可靠性问题

SSH自动重启远程隧道可靠性问题

我使用 ssh 隧道从本地网络设备上的远程服务器获取一些数据:

su -s /bin/bash -c "autossh -f -M 3333 -C -N -R 0.0.0.0:2222:y.y.y.y:1111 [email protected] k1001 -i /home/dbuser/.ssh/id_dsa" dbuser

有时有效,有时无效。它不太可靠。

有人有更好的解决方案吗?

sshd 的某些参数是否可以更好地发挥作用?

#打包生成配置文件
# 详细信息请参阅 sshd(8) 手册页

# 我们监听哪些端口、IP 和协议
端口 22
# 使用这些选项来限制 sshd 将绑定到哪些接口/协议
#聆听地址 ::
#监听地址 0.0.0.0
协议 2
# 协议版本 2 的 HostKeys
主机密钥 /etc/ssh/ssh_host_rsa_key
主机密钥 /etc/ssh/ssh_host_dsa_key
#出于安全考虑,开启权限分离
UsePrivilegeSeparation 是

# 临时版本 1 服务器密钥的生命周期和大小
密钥再生间隔 3600
服务器密钥位 768

# 日志记录
Syslog 工具验证
日志级别信息

# 验证:
登录宽限时间 120
PermitRootLogin 是
StrictModes 是

RSA身份验证 是
公钥认证 是
#AuthorizedKeys文件 %h/.xxx/authorized_keys

# 不要读取用户的 ~/.rhosts 和 ~/.shosts 文件
IgnoreRhosts 是
# 为了实现此功能,您还需要 /etc/ssh_known_hosts 中的主机密钥
RhostsRSAAuthentication 否
# 协议版本 2 类似
基于主机的身份验证 否
# 如果您不信任 RhostsRSAAuthentication 的 ~/.ssh/known_hosts,请取消注释
#IgnoreUserKnownHosts 是

# 要启用空密码,请更改为是(不推荐)
允许空密码 否

# 改为 yes 以启用质询-响应密码(注意
# 一些 PAM 模块和线程)
ChallengeResponseAuthentication 否

# 更改为 no 以禁用隧道明文密码
#PasswordAuthentication 是

# Kerberos 选项
#KerberosAuthentication 否
#KerberosGetAFSToken 否
#KerberosOrLocalPasswd 是
#KerberosTicketCleanup 是

# GSSAPI 选项
#GSSAPIAuthentication 否
#GSSAPICleanupCredentials 是

X11转发 是
X11显示偏移 10
PrintMotd 号码
PrintLastLog 是
TCPKeepAlive 是
#UseLogin 没有

#MaxStartups 10:30:60
#横幅 /etc/issue.net

# 允许客户端传递区域环境变量
接受环境语言 LC_*

子系统 sftp /usr/lib/openssh/sftp-server

UsePAM 是

谢谢

答案1

SSH 隧道是一种很好的“快速”解决方案,可用于通过防火墙获取数据,但它们是为 X-forwarding 等交互式内容而设计的。它们不适用于长期或批量传输。

如果可能的话,您可能应该考虑设置永久 VPN。如果不行,我会考虑减少通过隧道完成的工作量,并使其更加面向批处理。(每小时抓取一点数据,并在运行之间断开连接)

您还可以尝试使用 ClientAlive 和 ServerAlive 设置。这将导致系统定期通过加密通道进行 ping。这通常会阻止防火墙断开空闲的 TCP 连接。

答案2

看一下 Dan J Bernstein 的 daemontools。

它可以监控任何进程,并在发生故障时立即重新启动。非常适合保持隧道等事物的正常运行。您可以在 5 分钟内完成设置。

http://cr.yp.to/daemontools.html

欲了解简单 HOWTO,请参阅:

http://www.nightbluefruit.com/blog/2014/04/how-to-use-dj-bernsteins-daemontools/

相关内容