在mac下使用securecrt通过ssh连接远程服务器时,总会一段时间没有动作后,ssh被自动断开。在windows下用xmanager貌似没有遇到过这个问题。

在网上找了解决方法如下:
客户端配置:
Global.ini文件中将D:"Disconnect After Resume Timeout"=00000000改为D:"Disconnect After Resume Timeout"=FFFFFFFF
securecrt界面上配置:send string \n every 600 seconds或send protocol no-op every 600 seconds
服务端配置:
/etc/profile文件中配置TMOUT=0
然而在securecrt中试验发现无效,可能的原因有:多人反应securecrt的mac版有这个问题,mac的wifi断开导致(wifi断开的原因有多种,例如离开wifi的区域,mac休眠自动断开wifi等)。

在网上搜了一遍mac下流行的ssh工具,有securecrt、iterm2、telnet lite等,下下来试了一下,iterm2的界面和体验最好,于是决定放弃securecrt,改用iterm2。
在iterm2中仍然发现了ssh自动断开的问题,于是又开始了漫长的寻找方法和试验的过程。
网上有人给出解决方法是:
在客户端:~/.ssh/config文件(若没有则新建)中添加如下内容:
Host *
     ServerAliveInterval 60
意思是每60s发送一次以保持连接。
注意:在ssh客户端改,不要在服务端改(ClientAliveInterval 60, ClientAliveCountMax 100),不安全

按照这个方法在iterm2和自带终端上试验
1. 服务端设置TMOUT=0,客户端设置ServerAliveInterval 60,不会断
    服务端设置TMOUT=900,客户端设置ServerAliveInterval 60,900s后立即断,并有提示断开
2. 服务端设置TMOUT=0,客户端不配ServerAliveInterval 60,半小时后终端没反应,也没提示断开
    服务端设置TMOUT=900,客户端不配ServerAliveInterval 60,半小时后终端没反应,也没提示断开

于是最终方案:
1. 使用自带终端或iterm2,iterm2界面和用户体验更好一点
2. 服务端:/etc/profile文件中配置TMOUT=0,source /etc/profile生效,重新登录用户
3. 客户端:~/.ssh/config文件中配置
Host *
     ServerAliveInterval 60

参考:
https://ztgame.shenyu.me/linux/ssh-config.html
http://bluebiu.com/blog/iterm2-ssh-session-idle.html
http://bluebiu.com/blog/linux-ssh-session-alive.html

Mac下ssh连接远程服务器时自动断开问题的更多相关文章

  1. mac下ssh到远程服务器时中文乱码

    前言:mac本地的语言环境为英文,远程是支持中文的, 问题: 一开始是在iterm2下登录远程服务器更新数据库时发现中文注释不能正常显示,以为是iterms2下设置有问题,使用系统自带的termina ...

  2. Mac使用SSH连接远程服务器

    1. 终端通过 ssh 连接远程服务器 ssh -p 36622 root@localhost 2. 文件上传下载 上传 scp 下载 scp 3. 客户端 FinalShell(推荐) FileZi ...

  3. 解决mac下ssh空闲一段时间自动断开的问题

    之前在公司就遇到过这种问题,使用ssh登录linux服务器后,在后台放置一段时间,会发现会自动断开,解决的方法很简单: vim /etc/ssh/ssh_config 添加这2句即可 ServerAl ...

  4. Mac下如何连接linux服务器(SSH)-比较好用的SSH工具推荐

    Mac下如何连接linux服务器(SSH) 1.用mac自带终端连接 步骤如下: 打开终端,在顶部shell菜单中选择新建远程连接 在右侧服务器窗口点击+号,添加服务器,输入IP等信息 输入用户名,点 ...

  5. [转]学习win10的bash使用ssh连接远程服务器

    1. 前言 微软已经在Win10一周年更新预览版中加入了Ubuntu Bash命令支持,相当于一个小型的linux系统,本来连接远程服务器的话,要使用putty啥的,现在可以用这个直接连接,我来讲讲步 ...

  6. VsCode通过SSH连接远程服务器开发

    前言 nil 正文 安装插件 安装VsCode官方插件 Remote - SSH Remote - SSH: Editing Configuration Files WSL(远程桌面连接需要Remot ...

  7. Python实现SSH连接远程服务器

    首先需要安装paramiko模块 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import paramiko ssh = p ...

  8. (原)Ubuntu连接远程服务器时connection reset by peer

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/11086935.html 最近使用ubuntu通过ssh连接服务器时,由于密码错误,多次连接失败后,在 ...

  9. mac 终端下ssh 登录远程服务器不发输入中文

    转:https://segmentfault.com/q/1010000000150673 用Mac的iterm2 ssh连上去,终端显示中文乱码,也不能输入中文,然而本地终端可以显示和输入. 解决方 ...

随机推荐

  1. Angular - - angular.forEach、angular.extend

    angular.forEach 调用迭代器函数取每一项目标的集合,它可以是一个对象或数组.迭代器函数与迭代器(value.key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关 ...

  2. 1.4.2.2. PATHS(Core Data 应用程序实践指南)

    持久化存储文件在文件系统中的位置 先获取应用程序文档目录的路径 #pragma mark - PATHS - (NSString *)applicationDocumentsDirectory { ) ...

  3. 使用spring的JavaMailSender发送邮件

    一:pom.xml <!-- java邮件 -->      <dependency>          <groupId>javax.mail</group ...

  4. php常用图片处理类

    <?php /** * 已知问题:1.在图片缩放功能中,使用imagecreatetruecolor函数创建画布,并使用透明处理算法,但PNG格式的图片无法透明.用imagecreate函数创建 ...

  5. Js中Array数组学习总结

    第一次写博客...有点方... 小白一枚(是真的小白),自学前端,下面来说说我在学习过程中总结的一些数组操作,如果说哪有错误,请各位大神多多指出,小的虚心接受. 引用类型分为Object类型(所谓的对 ...

  6. HDU 3783 ZOJ

    ZOJ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. 私有成员的设置和访问方式——set()和get()方法

    在定义类时,为了保证类中成员数据安全性及的封装性,防止成员数据值被任意修改,通常将类中成员属性用private进行修饰. 被private所修改的成员变量,只能在类中访问,跳出本类中,就无法直接访问. ...

  8. cmake的命令execute_process

    execute_process(COMMAND <cmd1> [args1...]] [COMMAND <cmd2> [args2...] [...]] [WORKING_DI ...

  9. 读书笔记 effective c++ Item 1 将c++视为一个语言联邦

    Item 1 将c++视为一个语言联邦 如今的c++已经是一个多重泛型变成语言.支持过程化,面向对象,函数式,泛型和元编程的组合.这种强大使得c++无可匹敌,却也带来了一些问题.所有“合适的”规则看上 ...

  10. uml视频系列(二)——uml的概述

    在与uml进行了第一次的接触后,就被uml的博学多才给迷住了,uml居然可以做这么多的东西.才思敏捷的uml是设计软件的好帮手. 你还在为自己的类图不会设计而感到无助吗?你还在为你的对象不好确定而感到 ...