麒麟os中ssh密钥对默认存储路径为:客户端私钥/公钥在/home/用户名/.ssh/id_rsa与id_rsa.pub,服务器端authorized_keys文件在/home/用户名/.ssh/authorized_keys,需确保sshd_config中pubkeyauthentication yes且authorizedkeysfile路径正确。

如果您在麒麟OS中需要确认SSH密钥对的默认存储位置,以便进行密钥认证配置或故障排查,则需明确区分客户端生成密钥的位置与服务器端接收公钥的路径。以下是查询与验证这些关键路径的具体步骤:
一、查询客户端本地SSH密钥对默认生成路径
SSH密钥对由ssh-keygen命令在用户主目录下自动生成,默认使用RSA算法时,私钥与公钥分别保存在固定子目录中,该路径对所有符合OpenSSH规范的Linux系统(包括麒麟OS)保持一致。
1、打开终端,切换至当前用户主目录:
cd ~
2、进入.ssh隐藏目录:
cd .ssh
3、列出目录内容,确认是否存在id_rsa(私钥)和id_rsa.pub(公钥):
ls -l id_rsa*
4、若文件存在,其完整路径为:/home/用户名/.ssh/id_rsa 与 /home/用户名/.ssh/id_rsa.pub。
5、如未生成密钥对,可执行以下命令创建:
ssh-keygen -t rsa -b 4096
二、确认服务器端SSH公钥授权文件路径
服务器端需将客户端提供的公钥内容写入特定用户账户下的authorized_keys文件,该文件路径由sshd_config中AuthorizedKeysFile参数定义,默认值为.ssh/authorized_keys,解析为用户主目录下的相对路径。
1、检查SSH服务配置中指定的公钥文件路径:
sudo grep "^AuthorizedKeysFile" /etc/ssh/sshd_config
2、若输出为AuthorizedKeysFile .ssh/authorized_keys(默认值),则实际路径为:/home/用户名/.ssh/authorized_keys。
3、验证目标用户.ssh目录是否存在且权限正确:
ls -ld /home/用户名/.ssh
4、检查authorized_keys文件是否存在及权限:
ls -l /home/用户名/.ssh/authorized_keys
5、标准权限应为:.ssh目录为700,authorized_keys文件为600。
三、检查SSH服务配置中密钥认证启用状态
即使密钥文件存在于正确路径,若sshd_config中禁用公钥认证机制,系统仍将拒绝密钥登录。必须确认相关参数已启用并生效。
1、查看公钥认证是否开启:
sudo grep "^PubkeyAuthentication" /etc/ssh/sshd_config
2、预期输出应为:PubkeyAuthentication yes。
3、检查授权密钥文件路径是否被显式修改:
sudo grep "^AuthorizedKeysFile" /etc/ssh/sshd_config
4、若该行被注释或指向其他路径(如/etc/ssh/keys/%u/authorized_keys),则实际存储位置以该配置为准。
5、确认配置修改后已重启服务:
sudo systemctl restart sshd
四、验证当前用户SSH身份文件搜索路径
OpenSSH客户端在连接时会按固定顺序尝试加载私钥,其默认搜索路径可通过ssh命令调试模式观察,无需依赖配置文件硬编码路径。
1、以调试模式发起一次SSH连接(不实际登录):
ssh -v -o PubkeyAuthentication=yes 用户名@localhost
2、在输出日志中查找类似“Trying private key”的行,其后跟随的路径即为客户端当前尝试加载的私钥位置。
3、典型默认尝试路径包括:/home/用户名/.ssh/id_rsa、/home/用户名/.ssh/id_ecdsa、/home/用户名/.ssh/id_ed25519。
4、若需强制指定私钥路径,可在连接时使用-i参数:
ssh -i /path/to/private_key 用户名@server_ip
5、该调试输出可直接反映系统当前实际使用的密钥查找逻辑。










