统信UOS实现SSH免密登录需完成三步闭环:一、本地生成RSA密钥对(ssh-keygen -t rsa -b 4096);二、将公钥部署至远程主机authorized_keys(推荐ssh-copy-id);三、服务端配置PubkeyAuthentication yes、PasswordAuthentication no并重启SSH服务。

要在统信UOS上实现无需反复输入密码即可安全登录远程主机,必须完成本地密钥生成、公钥部署到目标主机、服务端强制密钥认证三步闭环,缺一不可。
生成本地SSH密钥对
打开终端(Ctrl+Alt+T),执行:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按回车接受默认路径【/home/username/.ssh/id_rsa】,私钥将严格保存在此处,不可移动或重命名。
输入并确认密钥密码(可直接回车设为空密码,但会降低离线私钥被盗后的防护强度)。
执行 ls -l ~/.ssh/,确认存在 id_rsa(私钥,权限应为600)和 id_rsa.pub(公钥)两个文件。若缺失 id_rsa.pub,说明生成失败,需重试。
将公钥复制到远程UOS主机
方法一:使用 ssh-copy-id 自动推送(推荐,一步到位)
确保远程主机已安装 openssh-server 并运行中,然后执行:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_ip
若远程SSH服务监听非标准端口(如2222),必须加 -p 参数:
ssh-copy-id -p 2222 -i ~/.ssh/id_rsa.pub user@192.168.1.100
方法二:手动复制(当 ssh-copy-id 不可用或权限受限时)
在本地执行 cat ~/.ssh/id_rsa.pub,全选并复制输出的整行内容(以 ssh-rsa 开头,结尾含邮箱);
登录远程主机后,依次执行:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
【注意:authorized_keys 文件权限必须为600,否则SSH服务拒绝读取,导致密钥登录始终失败】
配置SSH服务端强制密钥认证
第一步:编辑服务端主配置文件
sudo vim /etc/ssh/sshd_config
第二步:定位并修改三项关键参数(取消注释并设为指定值)
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
第三步:检查 PermitRootLogin 行前方不能有 # 号,否则配置不生效;PasswordAuthentication 设为 no 后,所有密码登录将立即失效,【务必确保密钥已成功部署并测试通过,再执行此步】
第四步:验证配置语法无误
sudo sshd -t
无任何输出即表示语法正确;若报错,需退回修改,不可跳过。
第五步:重启服务使配置生效
sudo systemctl restart ssh

















