I'm starting to provide Chinese / English versions of some articles, switch with the Language menu above. 我开始提供部分文章的中文、英文翻译,请使用顶部语言菜单切换。

用证书验证 Linux 远程登录

一般人远程登录 Linux Shell 都是敲密码,烦不说,一旦你的密码在全世界都一样,再遇到 CSDN 600 万密码大泄漏的事件,你的 VPS 也差不多完了。所以我们可以用一种更加方便和安全的方式替代密码,也就是 RSA 加密的证书文件。

首先,我们要生成一个证书。

cd ~/.ssh
ssh-keygen -t rsa

这时你的.ssh 目录里应该多出来 id_rsa.pub 和 id_rsa,其中后一个文件保管好,是你的密码,前一个是你的公钥,可以全世界去发布。然后我们要设置一下我们的 VPS。

首先用 FileZilla 或者 WinSCP 把你的 id_rsa.pub 上传到服务器的~/.ssh 里,并重命名为 authorized_keys,注意你想用哪个用户登录就 copy 到哪个用户的.ssh 下,比如用 root 登,就是 /root/.ssh,用 lantian 登就是 /home/lantian/.ssh。然后要在 OpenSSH 里做一点设置。

cd /etc/ssh
nano sshd_config

改下面的内容:

RSAAuthentication yes
PubkeyAuthentication yes
PermitEmptyPasswords no

存盘后 service ssh restart,然后可以断掉 SSH 再次连接,如果只输用户名就连接成功,那么就 OK 了,如果还要输密码,就回去检查你前面的操作步骤。OK 后还可以做一点修改,就是禁止密码登录,更加安全。

PasswordAuthentication no

然后为了安全起见,请登上 SSH,把 authorized_keys 文件权限改成 600,.ssh 目录改成 700,对于你本机则把两个密钥改成 600,.ssh 改成 700。这样就安全多了。

本站使用运行在 Vercel 上的 Waline 评论系统,中国大陆访问可能不稳定。