前言
登陆VPS主机时看到有数千次的尝试错误登录消息,看来有人在扫描并尝试用弱密码登录,于是就把单纯用密码登录的方式取消掉,换成SSH密钥。
最初用PuTTYgen直接生成的公钥和私钥导致“Server refused our key”这种情况出现,于是乖乖的用系统的SSH生成吧。
生成密钥
ssh-keygen -t rsa
提示设置密钥保存路径,直接回车会自动创建到默认文件夹/root/.ssh
中;然后提示设置私钥文件的密码,按提示输入两次后,公钥和私钥就生成了。
接下来将文件夹/root/.ssh
中的id_rsa.pub
文件修改名字为authorized_keys
,并且用chmod 600 /root/.ssh/authorized_keys
修改其文件权限。
编辑配置文件
编辑文件/etc/ssh/sshd_config
,把 #PubkeyAuthentication yes
前面的#
注释去掉。
重启SSHD服务
service sshd restart
生成PPK格式的私钥文件
使用WinSCP把/root/.ssh/id_rsa
这个私钥文件下载到本地。
用PuTTYgen的“Load”按钮载入它,输入之前设置的这个私钥文件的密码后,再点“Save private key”按钮生成PPK格式的私钥文件。此时本地保存的“id_rsa”文件可以删除了。
测试使用私钥文件登录
在PuTTY配置窗口,展开至“Connection->SSH->Auth”,点击“Browse…”按钮加载本地私钥文件,然后连接服务器。
这时如果前面的步骤都正确了,除了输入用户名外,就不再提示输入用户名对应的密码,而是该私钥文件的密码。
修改配置文件:禁用密码登录方式
在确定上一步使用私钥文件登录成功后,再禁用密码登录!
编辑/etc/ssh/sshd_config
,将PasswordAuthentication yes
改为PasswordAuthentication no
。
保存后,再次重启SSHD服务。
service sshd restart
至此,配置全部完成。