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 服务后生效。

← 返回首页