自己公司的一台独立服务器上周遭遇病毒入侵,查到是获取了root权限直接ssh登录到服务器上了,把我给吓的呀,然后请大神帮忙教自己处理了对外发包的病毒,自己也加强了安全防护,直接关闭了ssh远程密码验证,强制为密钥验证方式登录。
配置密钥登录的方法很简单,过程不外乎:
开启sshd服务的密钥验证功能; 生成密钥; 添加密钥到账户的authorized_keys 文件中授权; 保存私钥和公钥到本地电脑添加到SSH客户端软件; 本地测试密钥登录成功后,关闭sshd服务的密码验证;
1.开启密钥登录:
vim /etc/ssh/sshd_config 将以下三行配置文件前的注释取消,然后保存重启sshd服务 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
[root@cnyunwei ~]# service sshd restart
2.生成用户密钥文件
[root@cnyunwei ~]#ssh-keygen -t rsa 连续三次回车即可,ssh-keygen 有三种加密方法,rsa只是其中一种,详解和用法可以自行搜索下。
然后进入到用户家目录.ssh 目录中可以看到生成了两个文件 [root@cnyunwei .ssh] ll /root/.ssh total 8 -rw------- 1 root root 1675 Sep 7 13:18 id_rsa -rw-r--r-- 1 root root 393 Sep 7 13:18 id_rsa.pub id_rsa 是用户私钥文件,id_rsa.pub 即为公钥文件
3.导入公钥文件id_rsa.pub 到 authorized_keys 进行授权:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4.下载密钥文件id_rsa 和id_rsa.pub 到本地电脑上妥善保存,添加到ssh客户端(个人喜欢使用xshell )
5.测试了使用密钥能够SSH登陆后可以再次编辑/etc/ssh/sshd_config 文件,关闭密码验证。
千万得确认能够使用密钥文件登陆到服务器才能关闭密码验证,不然就没法远程了。
[root@cnyunwei .ssh] vim /etc/ssh/sshd_config #把 PasswordAuthentication yes 改成noPasswordAuthentication no PasswordAuthentication no 保存退出,重启sshd服务
现在已经配置完成,为了安全考虑最好是从服务器上删除刚才生成的两个密钥文件id_rsa 和id_rsa.pub
转载请注明:菜鸟运维网 » Linux配置密钥远程登录