Mac下ssh连接远程服务器时自动断开问题

在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

时间: 2024-12-03 08:51:36

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

python ssh 连接远程服务器,修改文本内容,调用脚本

今天小编get到一个用python的paramiko库创建ssh对象,连接到远程服务器,并且修改文件内容,调用脚本的好方法!! 主角当然是paramiko库啦,利用paramiko创建一个ssh对象,用于连接远程服务器 import paramiko ssh = paramiko.SSHClient()#创建SSH对象 设置允许连接不在know_hosts的主机,ssh会将 访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts,当下次访问相同计算机时,OpenS

mac终端ssh连接服务器 空闲的时候 连接断开

ssh_config详解(MAC OSX) 方法1:MAC客户端配置 配置“/etc/ssh/ssh_config”文件 “/etc/ssh/ssh_config” 文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式.这个文件的每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的.下面列出来的是最重要的关键词,用man命令查看帮助页(ssh (1))可以得到详细的列表. 编辑“ssh_config”文件 sudo -s     ( 启用超级用户 s

本地windows下PHP连接远程oracle遇到的诸多问题

任务目的:本地windows下PHP连接远程服务器下的oracle. 必须必须 确定服务器的数据库版本,如果本地的驱动和对方服务器版本不一致,会导致许多报错. 已知的oracle版本  分为 32位的10G,11G,13G 64位的10G,11G,13G 我本机是64位的系统,开始就进去误区,把所有版本的64位下载了一遍,结果 不管你怎么调,本地的驱动就是找不到ob方法. 然后目标定位到32位,32位如果下载错版本,会报这个错. oci_connect(): OCIEnvNlsCreate()

ssh连接云服务器Host key verification failed

一.用ssh连接远程服务器意外报错. 报错信息 $ ssh [email protected]*.* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEON

用Python写个自动ssh登录远程服务器的小工具

很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器.可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的打造一个在Linux/Mac os运行的自动ssh登录远程服务器的小工具.来个GIF动画示例下先: 概述 我们先理一下我们需要些什么功能: 1. 添加/删除连接服务器需要的IP,端口,密码 2. 自动输入密码登录远程服务器 对,我们就做这么简单的功能 开始写代码代码比较长,所以我也放在在Github

ssh免密连接远程服务器

ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具,通过4个简单的步骤实现无需输入密码登录远程Linux主机 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh-keygen -t rsa 回车默认选项即可,会在当前用户的home文件下生成密钥文件 拷贝密钥 ssh-copy-id -i .ssh/id_rsa.pub -p port [email protected] 输入目标服务器的用户名user,地址ip,端口port即可(如采用默认22端口可忽略-p)

windows下用XShell远程ubuntu时连接失败

现象描述:Ubuntu能Ping通主机,主机也能ping通虚拟机.但是windows下用XShell远程ubuntu时连接失败. 解决方案: 步骤: 1.查看一下防火墙状态:sudo ufw disable 2.活动,则关闭防火墙(即便不活动,也重新关一下防火墙):sudo ufw disable 3.开放22端口:sudo ufw allow 22 4.安装ssh服务:sudo apt-get install openssh-server 5.查看安装结果:ps -e |grep ssh 6.

mac 连接远程服务器、上传文件

1.连接远程服务器: ssh 命令 +用户名@服务器域名 ssh [email protected] 2.上传文件到远程服务器:scp 命令 +本地文件路径 + 用户名@服务器域名:服务器上存放的文件路径 MAC20151009AdeMac-mini:~ admin$ scp ~/documents/wx_sample.php [email protected]:/srv/www/li753-107.members.linode.com/public_html/wx/

使用WinScp连接远程服务器和传输文件

早在3月份,我就使用到了WinScp,WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议. 它的主要功能就是在本地与远程计算机间安全的复制文件..WinScp也可以链接其他系统,比如linux系统. 搬回原部门后,我庆幸没有那么早的删除掉这个工具,相对于XShell而言,你可以更加直观的看到文件的层级结构和控制文件的传输,无需再依赖其他插件. WinSCP的下载和安装 这个没什么好说的,直接百度就好. WinSCP连接远程服务器 先来介绍一下基本使用吧