生成密钥对

[root@host ~]$ ssh-keygen                                     # 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): # 输入密码短语,或直接按 Enter 留空
Enter same passphrase again: # 再输入一遍密码短语
Your identification has been saved in /root/.ssh/id_rsa. # 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. # 公钥
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

选项

-b        指定密钥长度;
-e 读取openssh的私钥或者公钥文件;
-C 添加注释;
-f 指定用来保存密钥的文件名;
-i 读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l 显示公钥文件的指纹数据;
-N 提供一个新密语;
-P 提供(旧)密语;
-q 静默模式;
-t 指定要创建的密钥类型。
-y 读取私钥输出公钥。

安装公钥

cd .ssh
cat id_rsa.pub >> authorized_keys

如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:

chmod 600 authorized_keys
chmod 700 ~/.ssh

配置 SSH

编辑 /etc/ssh/sshd_config 文件

RSAAuthentication yes       # 允许使用纯RSA身份验证
PubkeyAuthentication yes # 允许密钥登录
PermitRootLogin yes # 允许 root 用户通过 SSH 登录

禁用密码登录

PasswordAuthentication no

重启 SSH 服务

systemctl restart sshd