SSH 加快连接的几种方法
SSH 加快连接的几种方法 方法一:使用SSH密钥认证(最推荐): 原理:密钥认证比密码认证快,因为不需要在每次连接时传输密码并进行硬盘磨损。 方法二:取消DNS反向解析(客户端sshd_config): 原理: SSH服务器在接收连接时,默认会尝试反向解析客户端的IP地址到域名。如果客户端IP没有对应的PTR记录,或者DNS解析慢,这会拖慢连接速度。 这个方法是在服务器端 /etc/ssh/sshd_config 中配置,但效果展示在客户端连接速度, sudo nano /etc/ssh/sshd_config 修改为UseDNS no,如果前面有#,删除它 方法3:配置SSH客户端连接复用(ControlMaster): 原理:允许您在同一个 SSH 会话上重复使用多个连接。当您第一次连接后,后续的连接(如 scp、sftp 或再次 ssh)将直接通过已建立的通道,消耗重新进行认证和握手,速度极快。 在您本地电脑或例如 Termux 的 /.ssh/config 文件(/.ssh/config 文件的权限必须是 600) 中添加以下配置: 主持人 * ControlMaster 自动 控制路径 /.ssh/cm_socket/%r@%h:%p ControlPersist 600s # 保持主连接活跃600秒 方法4:优化连接超时设置(客户端 /.ssh/configconfig): 原理: 减少 SSH 客户端等待服务器响应的时间。如果网络特别差,可能需要增加。在客户端的中 `添加: 主持人 \* ConnectTimeout 10 #连接超时10秒 ServerAliveInterval 60 # 每60秒发送一次保活消息 ServerAliveCountMax 3 # 最多发送3次保活消息未响应则断开 **方法5: 指定密码认证方式 (客户端config):** **原理:** 强制SSH客户端先尝试 keyboard-interactive或password认证,而不浪费时间尝试其他不适用的认证方式。但通常情况下,如果设置了密钥,SSH会优先尝试密钥。 在~/.ssh/config中添加(如果需要密码登录): 主持人 \* PreferredAuthentications 公钥,键盘交互,密码 方法6:取消GSSAPI认证 **原理:** GSSAPI认证(如Kerberos)在某些环境下会尝试很长时间,导致连接缓慢。 **在服务器端/etc/ssh/sshd_config` 中设置** GSSAPIAuthentication 否 保存并重启 SSH 服务 方法7:使用Mosh(手机壳) 其实,有个一键优化SSH: sed -i ‘/^#UseDNS/d’ /etc/ssh/sshd_config && echo ‘UseDNS no’ >> /etc/ssh/sshd_config && \ sed -i ‘/^#GSSAPIAuthentication/d’ /etc/ssh/sshd_config && echo ‘GSSAPIAuthentication no’ >> /etc/ssh/sshd_config && \ sed -i ‘/^#PermitRootLogin/d’ /etc/ssh/sshd_config && echo ‘PermitRootLogin no’ >> /etc/ssh/sshd_config && \ sed -i ‘/^#PasswordAuthentication/d’ /etc/ssh/sshd_config && echo ‘PasswordAuthentication no’ >> /etc/ssh/sshd_config && \ sed -i ‘/^#ClientAliveInterval/d’ /etc/ssh/sshd_config && echo ‘ClientAliveInterval 300’ >> /etc/ssh/sshd_config && \ sed -i ‘/^#ClientAliveCountMax/d’ /etc/ssh/sshd_config && echo ‘ClientAliveCountMax 2’ >> /etc/ssh/sshd_config && \ sed -i ‘/^#TCPKeepAlive/d’ /etc/ssh/sshd_config && echo ‘TCPKeepAlive no’ >> /etc/ssh/sshd_config && \ echo -e “\n✅ SSH配置已优化,重启服务即可生效:” && \ 服务 sshd 重启 systemctl 重启 sshd
说明: UseDNS no 取消DNS反向解析,加快连接速度 GSSAPIAuthentication 不禁用GSSAPI,避免Kerberos 卡顿 PermitRootLogin no 禁止root登录,提升安全性 密码验证 否 强制使用密钥登录 ClientAliveInterval 300 - 5 分钟检测是否连接 ClientAliveCountMax 2 超过10分钟无响应自动中断 TCPKeepAlive 不会降低中间人攻击风险