SSH配置密钥登陆

密钥说明 #

A 使用密钥连接 B

A 与 B 都需要生成密钥对

在 SSH 连接中,服务器需要验证客户端发送的公钥。为了完成这个过程,服务器需要保存客户端的公钥。因此,服务器也需要生成一对密钥(公钥和私钥),并将其公钥部分添加到其所认可的客户端列表中,以便进行客户端的身份验证。所以 A 与 B 都需要进行生成密钥。

  • id_rsa.pub 为公钥
  • id_rsa 为密钥

生成密钥 #

ssh-keygen -t rsa

Windows 路径:C:\Users\用户名\.ssh\id_rsa.pub Linux 路径:~/.ssh/id_rsa.pub

配置密钥 #

在 B 的.ssh目录下新建authorized_keys(已存在则追加)内容为 A 的 id_rsa.pub

SSH 配置修改 #

CentOS/Debian #

编辑 sshd 配置文件

vi /etc/ssh/sshd_config

修改成以下项(找到相应被注释掉的配置删掉注释,或者直接在末尾追加也行)

RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys

如需关闭密码登陆

PasswordAuthentication no

重启 ssh 服务

service sshd restart

高版本的 CentOS 为

systemctl restart sshd

如果以上配置都配置好后仍无法连接,尝试给.ssh 目录 700 权限

chmod 700 ~/.ssh