Debian 10
# ssh-keygen --help 查看帮助信息 # [-t dsa | ecdsa | ed25519 | rsa] 指定证书类型 # [-C comment] 用于识别的备注 ssh-keygen -t ed25519 -C user@email.com Generating public/private ed25519 key pair. # 保存的文件 Enter file in which to save the key (/root/.ssh/id_ed25519):./example # 证书密码 Enter passphrase (empty for no passphrase): # 证书密码 Enter same passphrase again: Your identification has been saved in /root/.ssh/id_ed25519. Your public key has been saved in /root/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:2iorfNMvhA/vXxZPQifrqdKAANmQJfZbMIiGv9Wjp54 user@email.com ...
以上命令执行后,在指定的保存文件位置就能找到证书 假设文件名为 example ,其中 example 就是私钥,需要妥善保管,example.pub 就是公钥,放置于服务器上
# 如果您的用户 SSH 目录不存在,请使用 mkdir 命令创建它并设置正确的权限 mkdir -p ~/.ssh chmod 0700 ~/.ssh # 使用文本编辑器打开 ~/.ssh/authorized_keys 文件,并追加公钥 # 命令行追加 cat ./example.pub >> ~/.ssh/authorized_keys # 手动编辑追加 vi ~/.ssh/authorized_keys # 修改文件权限使只有本用户组能访问 chmod 0600 ~/.ssh/authorized_keys chown -R your_user:your_group ~/.ssh
# 文本编辑器打开 /etc/ssh/sshd_config 文件 vi /etc/ssh/sshd_config # 检查以下行 # 开启证书登录(默认为yes,确保其不是被取消注释的no) PubkeyAuthentication # 授权秘钥文件位置(如果被取消注释,确保其指向你的authorized_keys) AuthorizedKeysFile # 密码验证登录(默认为yes,证书登录部署完成可以手动关闭以提高安全性) PasswordAuthentication no # 同时可选择配置以下行 # 监听端口 Port # 监听地址 ListenAddress # 允许root认证登录 PermitRootLogin
保存完成后,不要立刻断开连接,这样还有一丝立刻还原的机会
# 客户端配置好证书登录后准备连接 # 重启 sshd systemctl restart sshd # 重启后就可以用秘钥登录了
在跨大版本更新时,OpenSSH 更新会让你选择如何应用 sshd_config 文件的更改,默认是使用最新的默认配置,这将导致配置被还原