Linux SSH端口更改和优化
为什么需要更改SSH默认连接端口
Windows服务器的默认远程管理端口是3389,Linux服务器的默认端口是22。如果在公网上,经常会被工具扫,这是不安全的,为了系统安全,需要更改默认的配置。
Linux 6 操作过程
更改配置文件
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori 更改配置前备份
# vi /etc/ssh/sshd_config 编辑sshd_config
####添加如下内容####
Port 58400
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
以上修改完成后,保存退出。
说明??:
参数 | 说明 |
---|---|
Port | 指定sshd守护进程监听的端口号,默认为22。默认在本机的所有网络接口上监听,也可以通过ListenAddress指定只在某个特定的接口上监听。端口范围:0-65535,不能与已有的服务器端口冲突。 |
PermitRootLogin | 是否允许root登录。可用值如下:“yes”(默认)表示允许;“no”表示禁止;“without-password”表示禁止使用密码认证登录;“forced-commands-only”表示只有在指定了command选项的情况下才允许使用公钥认证登录,同时其它认证方法全部被禁止,这个值常用于做远程备份之类的事情 |
PermitEmptyPasswords | 是否允许密码为空的用户远程登录。默认为“no” |
UseDNS | 指定sshd是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。默认值为“yes”。建议改成“no”,否则可能导致ssh连接很慢 |
GSSAPIAuthentication no | 解决Linux之间使用ssh远程连接慢的问题 |
重启sshd
执行如下命令重启sshd,使配置生效:
# /etc/init.d/sshd reload
Reloading sshd: [ OK ]
# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
说明??:reload为平滑重启,不影响正在ssh连接的其他用户,因此要好于restart。
Linux 7 操作过程
更改配置文件
如同 Linux 6 操作一样
重启sshd
systemctl reload sshd #平滑重启
systemctl restart sshd #重启sshd
SSH远程连接服务慢原因排查
连接慢的主要原因是DNS解析导致
处理方法:
在ssh服务端上更改/etc/ssh/sshd_config文件中的配置为如下内容:
UseDNS no
# GSSAPI options
GSSAPIAuthentication no
重启sshd进程使上述配置生效。
如果上述处理方法作用不大或无效,请进行如下操作:
检查ssh服务端上/etc/hosts文件中,127.0.0.1对应的主机名是否和uname -n的结果一样,或者把本机ip和hostname(uname -n结果)加入到/etc/hosts里。
# uname -n
wtf.datagrand.com
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.171 wtf.datagrand.com
利用ssh-v的调试功能查找慢的原因
具体排查命令如下:
? ~ ssh -v [email protected]
OpenSSH_7.3p1, LibreSSL 2.4.1
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: Connecting to 192.168.246.171 [192.168.246.171] port 22.
debug1: Connection established.
debug1: identity file /Users/wtf/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/wtf/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/wtf/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/wtf/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/wtf/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/wtf/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/wtf/.ssh/id_ed25519 type -1
.....
然后看下上述步骤具体卡在哪处。。
参考文档
原文地址:http://blog.51cto.com/wutengfei/2287991
时间: 2024-12-30 03:39:01