Linux的管理用户是root,远程连接的默认端口是22,这是通常有IT经验的人都知道的。为了系统安全,我们通常都会修改这些默认的设置,下面就说下怎么修改ssh的配置。实验用的系统为CentOS6.9,其他的Linux也可以参考。
1、修改ssh连接的端口
ssh的端口默认为22,我们可以通过修改配置文件改为一个非著名的端口,比如2222.
vim /etc/ssh/sshd_config
用vim编辑器打开sshd_config,把22端口改为2222,然后保存退出。
注意:配置文件生效之前,我们要在防火墙放行2222端口,设置iptables。
iptables -I INPUT -p tcp -m tcp --dport 2222 -j ACCEPT #放行2222端口
/etc/init.d/iptables save #保存iptables配置
/etc/init.d/iptables restart #重启iptables服务
重载ssh配置文件,不建议用restart来重启ssh服务,这样会影响到现有的ssh连接。
/etc/init.d/sshd reload
然后用XShell重新连接看看,连接成功。
2、禁止root用户直接ssh连接
root这个帐号是所有人都知道并且拥有最高权限的帐号,直接暴露在网络中不大安全,我们可以禁止ssh使用root连接,同样只需要修改ssh的配置文件即可。在这里要确认自己的系统有一个可以登录的普通帐号,用该帐号登录之后再su -切换到root,或者将该帐号加入sudoers里面。
用vim编辑器打开ssh的配置文件,找到PermitRootLogin那行,去掉注释,参数改为no,或者直接在最后几行加入下面的几条参数。(这几个命令都可以在配置文件找到的)
PermitRootLogin no #是否允许root登录
PermitEmptyPasswords no #是否允许空密码登录
UseDNS yes #是否对远程主机名进行反向解析,关闭会提高连接的速度
GSSAPIAuthentication no #解决Linux之间使用ssh连接慢的问题
修改之后,保存退出,然后重新加载ssh文件即可。
3、其他
如果对安全有更高的要求,可以更高ssh的监听ip,使其只监听内网的ip。可以通过防火墙来限制来源的IP地址
iptables -I INPUT -s 192.168.17.0/24 -p tcp --dport 2222 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
下面关于SSH相关的文章您也可能喜欢,不妨参考下:
开启SSH服务让Android手机远程访问 Ubuntu 14.04
Ubuntu 安装配置SSH(ssh: connect to host localhost port 22: Connection refused问题的解决)
CentOS SSH提示:connect to host centos-py port 22: Connection refused