Linux openSSH 密钥登入
SSH 密钥登录的完整配置流程,从生成密钥到禁用密码登录。
创建 SSH 密钥对
ssh-keygen -t ed25519 -C "注释"
在 ~/.ssh/ 下生成 id_ed25519 私钥,id_ed25519.pub 公钥。
创建 .ssh 目录和 authorized_keys 文件
# 创建文件夹
mkdir ~/.ssh
# 创建 authorized_keys 文件
touch ~/.ssh/authorized_keys
# 设置文件夹和文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
公钥复制到目标服务器
ssh-copy-id -i ~/.ssh/id_xxx.pub root@10.10.10.x
或者手动复制到 ~/.ssh/authorized_keys 中。
修改 SSH 服务器配置文件
编辑 SSH 配置文件:
nano /etc/ssh/sshd_config
关键配置项:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
- 取消
#PubkeyAuthentication yes允许密钥登录的注释 AuthorizedKeysFile指定密钥的文件位置
PasswordAuthentication no
注意:设置
PasswordAuthentication no后将不允许使用密码登录,等测试密钥登录成功后再修改此条。
重启 SSH 服务
# Debian/Ubuntu/Kali
systemctl restart ssh
# RHEL/CentOS
systemctl restart sshd
更改 SSH 端口号
检查当前 SSH 使用端口号:
grep -E '^#Port|^Port' /etc/ssh/sshd_config
修改 SSH 端口号为 62425:
sed -i 's/^#Port 22/Port 62425/' /etc/ssh/sshd_config
sed -i 's/^Port 22/Port 62425/' /etc/ssh/sshd_config
重启服务后生效。
禁用 SSH Root 登录
注意:禁用 root 登录可增加一层额外的安全性,因为要求用户以普通用户身份登录,然后在需要时升级权限。
编辑 SSH 配置文件:
nano /etc/ssh/sshd_config
PermitRootLogin no
重启 SSH 服务后生效。