15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

使用代码:

Skills
开始使用
28.01.2026

Linux中SSH密钥存储在哪里——以及如何安全地管理它们

SSH(安全外壳)是Linux生态系统中的基础工具,用于远程访问、安全文件传输、自动化和服务器管理。虽然大多数用户通过ssh命令与SSH交互,但在后台 SSH依赖于公钥和私钥对进行身份验证——特别是在无密码登录、自动化和DevOps实践至关重要的环境中。

默认SSH密钥存储位置

SSH密钥最常存储的位置是:

~/.ssh/

这指的是用户主文件夹中的.ssh目录,例如:

/home/username/.ssh/

此目录中的常见文件:

文件目的
id_rsa默认私钥(RSA)
id_rsa.pub匹配的公钥
id_ecdsa, id_ed25519其他私钥(ECDSA, Ed25519)
id_*.pub对应的公钥
authorized_keys存储允许连接的公钥
known_hosts存储服务器指纹(主机密钥验证)
config用户特定的SSH客户端配置

如果您使用ssh-keygen生成密钥,默认情况下它们存储在这里,除非指定了路径。

系统范围的SSH密钥位置

 SSH服务器(sshd)主机密钥

SSH守护进程(服务器端)使用的系统范围密钥:

/etc/ssh/

典型文件:

文件目的
ssh_host_rsa_key主机私钥(RSA)
ssh_host_rsa_key.pub主机公钥
ssh_host_ecdsa_keyECDSA主机私钥
ssh_host_ed25519_keyEd25519主机私钥

这些密钥用于识别服务器到客户端,而不是用于验证用户。

SSH守护进程(sshd)在连接期间提供主机公钥;客户端将其与~/.ssh/known_hosts进行比较。

自定义密钥位置

您可以从任何位置生成或使用SSH密钥,但必须指定路径:

ssh -i /path/to/custom_key user@host

您还可以通过~/.ssh/config配置多个密钥:

Host myserver
HostName 192.168.1.100
User devops
IdentityFile ~/.ssh/devops_key

密钥在哪里使用?

出站(客户端)

SSH客户端默认在~/.ssh/中查找私钥。它们用于在连接到远程服务器时发起身份验证。

  • ssh、scp、通过SSH的rsync、git(使用SSH远程时)

📌 入站(服务器端)

服务器在以下位置查找公钥

~/.ssh/authorized_keys

此文件列出了被允许登录到该特定用户帐户的公钥。

如果user_a尝试以user_b身份SSH进入服务器,则他们的公钥必须存在于~user_b/.ssh/authorized_keys中。

权限 – 对安全至关重要

正确的权限:

~/.ssh → 700 (drwx------)
~/.ssh/authorized_keys → 600 (-rw-------)
~/.ssh/id_rsa → 600 (-rw-------)
~/.ssh/id_rsa.pub → 644 (-rw-r--r--)

不正确的权限可能导致SSH忽略您的密钥或完全拒绝登录。

安全管理SSH密钥

  • 在生成私钥时使用密码短语

    ssh-keygen -t ed25519 -C "your_email@example.com"
  • 使用ssh-agent在内存中缓存解锁的密钥:

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
  • 定期轮换密钥
  • 从”authorized_keys”中删除未使用或孤立的密钥
  • 每个主机/项目使用单独的密钥
  • 避免在不同环境中使用root密钥

审计和调试

要查看在SSH连接期间使用了哪个密钥:

ssh -v user@host

这将打印详细日志,包括尝试使用的身份文件。

要列出当前代理中加载的密钥:

ssh-add -l

要删除一个密钥:

ssh-add -d ~/.ssh/mykey

结论

了解SSH密钥在Linux中的存储位置——以及如何安全管理它们——对系统管理员、开发人员、DevOps工程师以及在多主机或多用户环境中工作的人至关重要。

通过了解用户密钥、主机密钥和授权密钥之间的区别,您可以:

  • 排除身份验证问题
  • 设置安全的自动化工作流程
  • 管理跨团队和系统的访问

在生产系统或云平台(例如VPS或专用服务器)上,错误管理SSH密钥可能导致严重的安全漏洞。确保遵循最佳实践并定期审计访问。

15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

使用代码:

Skills
开始使用