本文参考自军哥的文章,稍作修改,为自己实践后的笔记。
为了Linux服务器的安全,最起码要做的是修改SSH登录端口及采用强壮点的密码,更安全一点就采用SSH密钥登录。
Linux SSH登录有两种:
1、使用密码验证登录
通常VPS或服务器开通后都是直接提供IP和root密码,使用这种方式就是通过密码方式登录,很容易被暴力破解,系统安全将存在很大的隐患。
2、使用密钥验证登录
基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(putty,xshell等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。
一、生成密钥
1、在Linux远程服务器生成密钥:
2、使用XShell生成密钥
Xshell是一款Windows下面功能强大的SSH客户端,能够按分类保存N多会话、支持Tab、支持多密钥管理等等,管理比较多的VPS/服务器使用XShell算是比较方便的,推荐使用。
下载XShell,安装,运行XShell,点击菜单:工具->新建用户密钥生成向导,出现如下提示:
点击保存为文件将密钥保存为id_rsa.pub。
二、将密钥添加到远程Linux服务器
1、用winscp,将id_rsa.pub文件上传到/root/.ssh/下面(如果没有则创建此目录),并重命名为:authorized_keys(如果是在Linux服务器上生成的密钥直接执行:mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys),再执行:chmod 600 /root/.ssh/authorized_keys 修改权限。
2、修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。
3、重启sshd服务,Debian/Ubuntu执行/etc/init.d/ssh restart ;CentOS执行:/etc/init.d/sshd restart。
三、客户端测试使用密钥登录
1、使用putty登录注意事项
putty使用的私钥文件和Linux服务器或XShell的私钥格式不同,如果使用putty的话,需要将Linux主机上生成的id_rsa文件下载的本地。运行putty压缩包里面的puttygen.exe,选择Conversions->Import key选择私钥文件id_rsa,输入密钥文件的密码,会出现如下界面:
点击“Save Private Key”,将私钥保存为id_rsa.ppk。winSCP需要的也是这个。下面就是用putty登录,不再赘述。
2、XShell登录
运行XShell,选择菜单File->New,按如下提示填写:
打开会话填如密钥密码应该就能成功登录。
3、Linux客户端登录测试
在Linux客户端执行:chmod 600 /root/id_rsa 再执行:ssh root@主机名 -i /root/id_rsa /root/id_rsa为私钥文件,第一次链接可能会提示确认,输入yes即可,再按提示输入密钥密码,没有问题就会出现用户提示符。
四、关闭SSH密码登录
1、修改/etc/ssh/sshd_config 文件
将PasswordAuthentication yes 修改成 PasswordAuthentication no
2、重启sshd服务
Debian/Ubuntu执行/etc/init.d/ssh restart ;CentOS执行:/etc/init.d/sshd restart。
密钥文件自己一定要保存好!
五、修改SSH默认端口
Linux中SSH默认端口为22,为了安全考虑,防止恶意扫描,可将端口号改成大一点,比如50000。
修改方法:
vi /etc/ssh/sshd_config,找到Port 22,将其修改为50000,或使用/usr/sbin/sshd -p 50000指定端口。
然后/etc/init.d/sshd restart
2017年3月26日 下午6:24 沙发
22端口已经在文件里改好了,但不生效
2017年3月26日 下午10:24 1层
@snoopy 改完后重启下ssh服务再用新端口登录把老端口删掉,centos是service sshd restart,debian是service ssh restart
2017年3月29日 上午9:57 2层
@厘米 已经改好了端口,删除不知道要如何搞,服务也重启了。