为了服务器安全我们一般会选择把SS的默认端口给修改掉,防止暴力破解,一般来说我们的常规做法是:在/etc/ssh/sshd_config里面将Port 22这个默认值修改掉,然后重启SS:/etc/init.d/ssh restart。
更加靠谱的做法是用密匙代替密码登陆,并关闭密码登陆,一般流程如下:
首先:生成密匙,记得保存密匙,下面演示的是将生成的保存在/root/.ssh下,id_rsa为私钥,id_rsa.pub为公钥
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##直接回车默认路径
Created direc"不可描述"y ‘/root/.ssh’.
Enter passphrase (empty for no passphrase): ##输入密码短语(留空则直接回车)
Enter same passphrase again: ##重复密码短语
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
04:e1:93:92:95:ba:55:21:58:05:7d:57:58:92:32:d3 root@x
The key’s randomart image is:
+–[ RSA 2048]—-+
| oB*o. ..=o |
| .+.+o = E. |
| o.+… = |
| …o |
| o S |
| . |
| |
| |
| |
+—————–+
其次:导入公钥
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
再次:更改SS配置文件
修改SS的配置文件/etc/ssh/sshd_config,找到下面3行,将前面的#去掉后保存,然后重启SS:/etc/init.d/ssh restart
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
还有:如果用putty登陆的话是不能识别这货id_rsa的,需要借助putty genera"不可描述"将文件转换成PPK文件,转后会得到一个 文件名.ppk,保存好这个文件。如果使用Xshell的就可以直接省略这么麻烦了,能直接识别id_rsa
最后:关闭SS密码登陆
在/etc/ssh/sshd_config找到PasswordAuthentication yes,改为PasswordAuthentication no,记得把前面的“#”给去掉,然后重启SS:/etc/init.d/ssh restart
到这里一般情况下是完了,但是vestacp你会发现上面那样干了之后你最后自己没办法用密匙登陆了,最开始我也是百思不得其解,最后在别人的提示下得知需要修改vestacp面板里面的防火"不可描述"规则,那个fail2ban会干掉你的如果不修改的话。所以我们在做上面的那些事儿之前我们需要先修改fail2ban的规则。
如下(下图中演示的是将22端口改为8063,要与文章第一段里面提到的那个修改的端口保持一致):
本文由teddysun和西秦公子的资料整理而来,表示感谢!