服务器设置 SSH 通过密钥登录

2018年03月08日

通过给 Linux 服务器设置密钥登录,可以避免每次登录服务器都输入密码,也会更安全一些。

密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

下面是服务器生成密钥及客户端登录的过程:

1. 在服务器上制作密钥对

bash 中输入下面命令,多敲几次回车即可在目录/root/.ssh/ 中生成id_rsa 公钥及id_rsa.pub 私钥

ssh-keygen

2. 通过scp 将私钥保存下载在自己的客户端电脑上

3. 在服务器上安装公钥且修改对应文件的权限

cd .ssh
cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys
chmod 700 ~/.ssh

4. 编辑 SSH 配置文件/etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
PasswordAuthentication no

5. 重启 SSH 服务

service sshd restart

6. 在本地电脑上远程登录即可

ssh root@xxx.xx.xx.xx -i ~/ssh_pub.pem

原文地址:设置 SSH 通过密钥登录