在银河麒麟V10上配置SSH密钥登录需完成三步:1.本地生成ED25519密钥对(ssh-keygen -t ed25519),私钥权限必须为600;2.用ssh-copy-id或手动管道将公钥部署至目标用户~/.ssh/authorized_keys并设600权限;3.修改sshd_config启用PubkeyAuthentication、禁用PasswordAuthentication,注释UsePAM,重启sshd服务。

在银河麒麟V10上配置SSH服务使用密钥对替代密码登录,是为了彻底规避密码被暴力破解、重复输入、脚本中断等实际运维痛点,必须完成本地密钥生成、公钥部署到目标用户、服务端认证机制启用三步闭环操作。
在本地生成ED25519密钥对
打开终端,执行:
ssh-keygen -t ed25519 -C "admin@kylin"
连续按三次回车:第一次确认保存路径为~/.ssh/id_ed25519,第二、三次留空即不设密码短语——【设了密码短语会导致每次SSH连接都弹出交互式输入,彻底破坏免密效果】。
执行 ls -l ~/.ssh/id_ed25519*,应看到私钥 id_ed25519(权限必须为600)和公钥 id_ed25519.pub 两个文件;若私钥权限不是600,后续所有步骤都将失败。
将公钥上传至麒麟V10目标用户
方法一:使用 ssh-copy-id 自动部署(推荐,适合网络连通且目标用户已启用密码登录)
执行:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.168.1.100(替换为实际IP和用户名)
提示输入密码时,输入目标用户的密码;成功后显示“Number of key(s) added: 1”。
方法二:手动管道上传(适用于最小化系统或 ssh-copy-id 未安装)
执行:
cat ~/.ssh/id_ed25519.pub | ssh user@192.168.1.100 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
【chmod 600 ~/.ssh/authorized_keys 必须执行,否则OpenSSH拒绝读取该文件】。
配置并重启SSH服务端
第一步:编辑主配置文件
sudo vim /etc/ssh/sshd_config
第二步:确认以下三行未被注释且值为 yes:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
第三步:特别注意——【#UsePAM yes 这一行必须保持注释状态,麒麟V10中启用该选项会导致 root 及普通用户公钥登录全部失败】。
第四步:保存退出后,重启服务:
sudo systemctl restart sshd

















