每日一折腾—生成 SSH 密钥并修改 SSH 设置
1. 创建 SSH 密钥
首先创建一个 2048 位 RSA key
1 |
ssh-keygen -t rsa |
会问你保存地址,默认保存在/root/.ssh/下,然后会问是否用 passphrase 加密,不加密可以直接回车,加密则输入两次密码。
接着 key 就生成好了,共两个文件,id_rsa 和 id_rsa.pub。
切换到密钥保存的目录,然后导入 id_rsa 至 puttygen
如果是加密过的,会提示输入 passphrase,然后点 Save private key:
这就完成了,回到 VPS 这边,吧 id_rsa.pub 转为 key 文件:
1 |
cat id_rsa.pub >> authorized_keys |
接着把 id_rsa 和 id_rsa.pub 都下载下来,就可以删除了,并调整目录权限。
1 2 3 4 |
rm id_rsa rm id_rsa.pub chmod 600 authorized_keys chmod 700 -R ../.ssh |
2. 修改 SSH 设置
完成这些之后,就可以修改 SSH 设置了,这时候需要谨慎进行,建议分三步进行。
2.1 开启密钥登陆
首先修改 openssh 设置
1 |
nano /etc/ssh/sshd_config |
Port 22 可以改为其他端口,开启 rsa key 登陆
1 2 3 |
PubkeyAuthentication yes AuthorizedKeysFile /root/.ssh/authorized_keys #这里需要注意用户权限,要保证登陆的的用户能共访问到此目录 |
之后重启 SSH,看看是否能够通过密钥直接登陆。
2.2 关闭密码登陆
确认可以登陆后再修改为不允许明文密码登陆
1 |
PasswordAuthentication no |
2.3 禁止 root 登陆
在文件最后添加一行,禁止 root 登陆
1 |
PermitRootLogin no |
完成以上设置后,参考这个帖子怎样通过 Sudoers 在 WinSCP 中获得免密码 Root 权限,进一步提高 VPS 安全性。