使用mobaxterm连接ssh保持不中断

本文介绍了如何在服务端配置sshd_config以增强SSH连接的KeepAlive功能,包括移除注释并调整间隔时间。同时,也给出了不同客户端如securecrt、putty和MobaXterm的相应设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

服务端配置

修改服务器配置文件/etc/ssh/sshd_config,在配置文件里加入下面三行:

TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 20
以上设置,是让sshd服务每间隔60秒向客户端发送keepalive报文以保持连接,直到连续20次没有收到keepalive回应,才断开与客户端的连接。其实为这几行配置在原文件里都有,只是前面有#号没有生效,可以把这几行前面的注释符号#去掉,然后改一下数字就好了。修改完成以后,需要重新启用ssh服务才能生效。

客户端配置
根据你使用的不同客户端,可以做相应的设置:

securecrt的设置方法:会话选项 –> 终端 –> 反空闲–>选中发送协议 NO-OP(p) 每 60 秒

putty的设置方法:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为60
MobaXterm的设置方法:setting>SSH>sessions setting>勾选ssh Keepalive


如果你直接使用命令行的SSH客户端直接登录远程服务器,还可以修改SSH客户端的配置文件,一般是在全局配置文件/etc/ssh/ssh_config或者用户级配置文件~/.ssh/config里,加入以下代码:

TCPKeepAlive yes
ServerAliveInterval 60
ServerAliveCountMax 20

### 防止 MobaXterm 文件传输中断的解决方案 为了确保通过 MobaXterm 进行文件传输时发生意外断开连接的情况,可以采取多种措施来增强稳定性并支持断点续传功能。 #### 使用 SFTP 协议进行稳定传输 SFTP (SSH File Transfer Protocol) 是一种安全可靠的协议,在大多数情况下能够提供更稳定的文件传输服务。MobaXterm 支持内置的 SFTP 客户端工具[^1]: ```bash sftp username@remote_host:/path/to/file /local/path/ ``` 此命令允许用户建立一个持续性的会话用于上传或下载文件,并且可以在遇到临时网络波动时自动恢复未完成的任务。 #### 启用 KeepAlive 功能保持连接活跃状态 在网络条件稳定的情况下,启用 SSH 的 `ServerAliveInterval` 和 `ClientAliveCountMax` 参数有助于维持长时间无操作期间的连接存活率。编辑 `.ssh/config` 文件添加如下配置项可有效减少因超时而导致的掉线现象: ```plaintext Host * ServerAliveInterval 60 ClientAliveCountMax 3 ``` 上述设置意味着每分钟发送一次心跳包给服务器确认客户端仍然在线;如果连续三次未能收到回应,则认为连接失败并尝试重新连接[^3]。 #### 断点续传机制的应用 对于大容量文件或者频繁遭遇中途打断的情形下,引入断点续传技术显得尤为重要。虽然原始资料并未提及具体针对 MobaXterm 的实现细节[^2],但一般而言可以通过第三方插件或是脚本编程的方式来达成这一目标。例如利用 Python 编写简单的 FTP/SFTP 脚本来管理部分已完成的数据块位置记录,从而实现在下次启动程序时继续之前的工作进度。 ```python import paramiko def resume_sftp_transfer(local_path, remote_path, offset=0): transport = paramiko.Transport(('hostname', 22)) private_key = paramiko.RSAKey.from_private_key_file('/path/to/private/key') try: transport.connect(username='username', pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport) with open(local_path, 'rb') as localfile: localfile.seek(offset) with sftp.open(remote_path, "ab") as remotefile: while True: data = localfile.read(8192) if not data: break remotefile.write(data) finally: transport.close() ``` 这段代码展示了如何基于 Paramiko 库构建自定义函数以支持从指定偏移量处开始追加写入远程主机上的文件内容,进而达到断点续传的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值