使用SSH密钥登录Linux系统

前言

登陆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
至此,配置全部完成。

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注