问题描述

博主安装的是 ubuntu20.04,配置阿里云服务器。ssh 远程连接服务器,出现登陆慢、输入卡顿的现象(输入命令和 vim 均表现卡顿)。

重启服务器,重启电脑,登陆慢、卡顿问题复现,未解决。
随后 htop 查看服务器内存占用,排除内存占用率过高引发卡顿问题的可能

查阅网上,发现有其他同学出现类似情况,描述如下:“在浏览器里使用阿里云 ECS 自带的远程连接,打字很流畅,没有问题。但是用 xshell 或者 putty 的连接话,打字就很卡,一个单词,键盘上已经敲完了,屏幕上才显示了一半,一个字母一秒钟,等一会才显示完整。”

提醒——建议进行配置修改前,做好备份,降低试错成本。

结合资料,方法汇总、尝试,已解决上述问题。


解决方案

登陆慢

方法 1:修改配置文件 nsswitch_conf

快捷键ctrl + alt + t 打开终端,输入 sudo vim /etc/nsswitch.conf 进入配置文件

# 找到
# host: files mdns4_minimal [NOTFOUND=return] dns
# 改为
host: files

前者表示对域名, 先用 /etc/hosts 文件解析, 解析不了再查 dns。

后者不做 dns 解析,实测 curl 获取实时天气信息失效,而 ssh 登陆速度显著提升。所以 server 需要通过域名访问其他服务器,需要保留此行。

方法 2:修改配置文件 sshd_config UseDNS

快捷键 ctrl + alt + t 打开终端,输入 sudo vim /etc/ssh/sshd_config 进入配置文件

# 找到
# UseDNS yes
# 改为
UseDNS no

UseDNS 选项打开状态下,当通过终端登录 SSH 服务器时,服务器端先根据客户端的 IP 地址进行 DNS PTR 反向查询出客户端的主机名,然后根据查询出的客户端主机名进行 DNS 正向 A 记录查询,验证与其原始 IP 地址是否一致,这是防止客户端欺骗的一种措施。

但一般我们的是动态 IP 不会有 PTR 记录,打开这个选项没什么用,不如关闭。

方法 3:修改配置文件 sshd_config GSSAPIAuthentication

快捷键 ctrl + alt + t 打开终端,输入 sudo vim /etc/ssh/sshd_config 进入配置文件

# 找到
# GSSAPIAuthentication yes
# 改为
GASSAPIAuthentication no

实际上,这个 GSSAPI(generic security services application programming interface),是一套通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。

一般 ssh 依次进行的认证方法是 publickey、gssapi-keyex、gssapi-with-mic、password。一般用户只使用 password 认证方式,但前面 3 个认证过程系统还是会尝试,这就浪费时间了,也就造成 ssh 登陆慢。

方法 4:修改客户端配置文件 ssh_config(注意,不是 sshd_conf)

快捷键 ctrl + alt + t 打开终端,输入 sudo vim /etc/ssh/ssh_config 进入配置文件

# 找到
# GSSAPIAuthentication yes
# 改为
GASSAPIAuthentication no

ssh_config 和 sshd_config 都是 ssh 服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。

打字卡顿输入卡顿

方法 1:开启 ssh 客户端(如 putty)内建的 Local Echo 和 Local Line Editing

解决方案是开启 ssh 客户端(如 putty)内建的 Local Echo 和 Local Line Editing 支持,本地编辑好一句话以后再发送到服务器端执行。

不过这样的话你就无法使用命令行提供的特殊功能(比如自动补全等),也没法使用终端下的编辑器了。详情可参考链接高延迟 SSH 部分解决方案.

方法 2:使用 mosh 软件

下载链接: mosh.
原帖: ssh 打字卡顿.

方法 3:心跳改回默认

原因不明,但心跳改回默认、重启服务后,在 vim 中编辑状态尤其严重的卡顿消失。

配置更新,需重启服务

执行如下命令,重启 SSH 服务使配置生效,service sshd restart


结论

至此,linux ssh 远程连接服务器,登陆慢、打字卡顿输入卡顿的问题均已解决。

好久没写文章,发现自己惰性大,个人做事选择容易选择轻松项,而非正确项。该文章所解决内容,也已拖沓数月。从结果看,做事效率非最佳,路线方法不对,要改变,要多做少想。纸上得来终觉浅,觉知此事要躬行,共勉。


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐