前言
ssh 远程登录密码认证的方式有 Password
、Keyboard Interactive
和 Public Key
三种主要方式。
前面两种方式就是密码认证,含义都是一样大同小异。第三种是登录方式最安全的一种,也是我们常用的云服务器默认使用的一种方式。
本文就如何配置并使用 Public Key
来登录进行演示。
服务器配置步骤
以 root 用户登录目标 Linux 服务器,输入 ssh-keygen -t rsa
命令生成公私钥,如下:
注:这里使用 Linux 命令生成公私钥,并不是一定要在在该服务器上生成。你可以使用外部工具直接生成好公私钥,然后将公钥上传到服务器上使用是一样的。例如 XShell 等工具都提供了生成公私钥的操作。
文件权限设置:
chmod 700 /root/.ssh/
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
将公钥添加到 ~/.ssh/authorized_keys
文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改 sshd 服务的配置文件 /etc/ssh/sshd_config
:
# 开启 Pubkey 认证
PubkeyAuthentication yes
# 开启并检查授权文件位置是否正确
AuthorizedKeysFile .ssh/authorized_keys
我在本地测试验证时,未重启 sshd 服务直接就可以使用了。如果你的 sshd 配置未生效可能你需要重启 sshd 服务尝试。
最后将私钥文件 ~/.ssh/id_rsa
下载到本机电脑,需要在 XShell 等客户端连接工具上使用。
以 XShell 为例使用方法
如图导入并配置使用 Public Key 登录方式,即可无需密码直接连接到 Linux ssh 控制台。
(END)