生成密钥对(在客户端电脑上操作)
如果你的本地电脑是 Windows,可以使用 Git Bash 或 PowerShell;如果是 Linux/macOS,直接使用终端
我这里生成在E:\Download名叫openEuler_key
ssh-keygen -t ed25519 -f E:\Download\openEuler_keyEnter passphrase:建议直接回车(留空),方便测试;生产环境可设置密码。
欧拉服务器端:配置 SSH
⚠️ 警告:请务必保持当前的 22 端口连接,开一个新窗口操作,不要关闭当前窗口!
上传公钥(在服务器执行):
mkdir -p ~/.ssh chmod 700 ~/.ssh
将你在 Windows 复制的公钥内容粘贴到 authorized_keys
echo "ssh-ed25519 AAAAB3NzaC1yc2E...(你的公钥内容)" >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys修改 SSH 配置文件:
备份并编辑 /etc/ssh/sshd_config:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bakvim /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 端口无法连接。
防火墙放行 4098:
firewall-cmd --permanent --add-port=4098/tcp firewall-cmd --reload
SELinux 策略(允许 4098 作为 SSH 端口):
dnf install -y policycoreutils-python-utilssemanage port -a -t ssh_port_t -p tcp 4098测试
ssh -i E:\Download\openEuler_key -p 4098 username@服务器IP重启
systemctl restart sshd