欧拉linux只允许密钥登录

作者:Administrator 发布时间: 2026-04-30 阅读量:6 评论数:0

生成密钥对(在客户端电脑上操作)

如果你的本地电脑是 Windows,可以使用 Git Bash 或 PowerShell;如果是 Linux/macOS,直接使用终端

我这里生成在E:\Download名叫openEuler_key

ssh-keygen -t ed25519 -f E:\Download\openEuler_key

Enter passphrase:建议直接回车(留空),方便测试;生产环境可设置密码。

欧拉服务器端:配置 SSH

⚠️ 警告:请务必保持当前的 22 端口连接,开一个新窗口操作,不要关闭当前窗口!

  1. 上传公钥(在服务器执行):

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh

将你在 Windows 复制的公钥内容粘贴到 authorized_keys

echo "ssh-ed25519 AAAAB3NzaC1yc2E...(你的公钥内容)" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

修改 SSH 配置文件

备份并编辑 /etc/ssh/sshd_config

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config

找到并修改/添加以下参数

# 改端口

Port 4098

# 禁用密码登录

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

# 允许密钥认证

PubkeyAuthentication yes

# Root 登录策略(二选一)

PermitRootLogin prohibit-password # 允许 root 用密钥登录

# PermitRootLogin no # 或完全禁止 root 远程登录

服务器端:防火墙与 SELinux(关键)

欧拉系统默认开启 SELinux 和 firewalld,不改配置会导致 4098 端口无法连接。

  1. 防火墙放行 4098

    firewall-cmd --permanent --add-port=4098/tcp
    firewall-cmd --reload

SELinux 策略(允许 4098 作为 SSH 端口):

dnf install -y policycoreutils-python-utils
semanage port -a -t ssh_port_t -p tcp 4098

测试

ssh -i E:\Download\openEuler_key -p 4098 username@服务器IP

重启

systemctl restart sshd

评论