一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

在麒麟操作系统中配置SSH公钥登录 银河麒麟远程安全设置

时间:2026-06-07 08:03:47 编辑:袖梨 来源:一聚教程网

麒麟OS通过SSH公钥登录需完成三步:一、用ssh-keygen -t ed25519生成密钥对;二、用ssh-copy-id或手动方式将公钥写入~/.ssh/authorized_keys并设权限600;三、修改/etc/ssh/sshd_config启用PubkeyAuthentication、禁用PasswordAuthentication,注释#UsePAM yes,重启sshd服务。

如果您希望在麒麟操作系统上通过SSH公钥方式实现远程登录,以规避密码认证带来的安全风险与重复输入负担,则需完成密钥对生成、公钥部署及服务端认证配置三个核心环节。以下是多种可独立实施的配置方法:

一、使用ssh-keygen与ssh-copy-id自动部署

该方法适用于本地客户端与麒麟目标主机均预装OpenSSH且网络可达的场景,能自动创建.ssh目录、写入authorized_keys并设置正确权限。

1、在本地终端执行密钥生成命令,接受默认路径与空密码(如需更高安全性可设密码):
ssh-keygen -t ed25519 -C "admin@kylin"

2、确认私钥id_ed25519与公钥id_ed25519.pub已生成于~/.ssh/目录下,且私钥权限为600

3、执行公钥自动上传命令,将公钥注入目标用户账户:
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

4、若提示输入密码,请输入目标用户密码;成功后系统将显示“Number of key(s) added: 1”。

二、手动复制公钥内容并写入authorized_keys

当目标麒麟主机未启用ssh-copy-id或处于最小化安装状态时,可通过管道命令安全完成公钥写入,避免文件传输过程中的权限错误。

1、在本地终端输出公钥内容:
cat ~/.ssh/id_ed25519.pub

2、登录麒麟目标主机,进入用户家目录并初始化.ssh结构:
mkdir -p ~/.ssh && chmod 700 ~/.ssh

3、将公钥字符串追加至authorized_keys(注意替换为实际公钥内容):
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI..." >> ~/.ssh/authorized_keys

4、严格设置授权文件权限:
chmod 600 ~/.ssh/authorized_keys

三、跨用户批量部署公钥(含root账户)

适用于需同时为多个用户(包括root)启用密钥登录的运维场景,需确保每个目标账户的.ssh目录与authorized_keys权限合规,并统一启用服务端公钥认证。

1、为每个目标用户分别生成密钥对,或复用同一对密钥,确保公钥内容唯一不冲突。

2、依次登录各目标账户,执行以下命令(以root为例):
sudo -u root mkdir -p /root/.ssh && sudo chmod 700 /root/.ssh

3、将对应公钥写入root账户的授权文件:
sudo sh -c 'echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI..." >> /root/.ssh/authorized_keys'

4、设置root专属授权文件权限:
sudo chmod 600 /root/.ssh/authorized_keys

四、修正SSH服务端配置并重启

麒麟OS默认可能禁用公钥认证或受PAM机制干扰,必须显式启用PubkeyAuthentication并屏蔽UsePAM相关限制,否则密钥登录将被拒绝。

1、编辑主配置文件:
sudo vim /etc/ssh/sshd_config

2、确认以下三行未被注释且值为yes:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

3、检查#UsePAM yes是否仍处于注释状态;若未注释,必须添加#号注释掉该行,这是麒麟系统特有要求。

4、保存退出后立即重载服务配置:
sudo systemctl reload sshd

五、验证密钥登录有效性并禁用密码认证

在确认服务端配置生效后,需通过真实连接测试密钥登录是否成功,并在验证无误后彻底关闭密码认证通道,防止回退攻击。

1、从本地发起SSH连接,不输入密码即可登录:
ssh -i ~/.ssh/id_ed25519 [email protected]

2、登录成功后,再次编辑/etc/ssh/sshd_config,将PasswordAuthentication设置为no(若尚未设置)。

3、执行完整重启确保策略生效:
sudo systemctl restart sshd

4、尝试使用密码方式连接(如ssh [email protected]),应返回Permission denied (publickey)错误提示。

热门栏目