文章目录SSH私钥的文件结构1. id_ed25519 是一个文件2. 本地可以有多个私钥文件3. 每个私钥都有独立的文件4. SSH如何知道有哪些私钥文件5. 查看你本地的所有私钥6. 私钥文件的内容示例7. 最佳实践使用多个私钥8. 调试SSH使用的私钥总结SSH私钥的文件结构1.id_ed25519是一个文件~/.ssh/id_ed25519是私钥文件~/.ssh/id_ed25519.pub是对应的公钥文件每个密钥对都存储在两个独立的文件中2. 本地可以有多个私钥文件SSH支持同时存在多个不同类型的私钥文件通常包括~/.ssh/ ├── id_ed25519# Ed25519算法私钥现代推荐├── id_ed25519.pub# 对应的公钥├── id_rsa# RSA算法私钥传统├── id_rsa.pub# 对应的公钥├── id_ecdsa# ECDSA算法私钥├── id_ecdsa.pub ├── github_key# 自定义命名的私钥比如用于GitHub├── github_key.pub ├── work_server_key# 另一个自定义私钥└── work_server_key.pub3. 每个私钥都有独立的文件重要概念SSH的每个私钥都存储在单独的文件中而不是所有私钥放在一个文件里。常见的私钥文件命名模式# 默认命名按算法类型~/.ssh/id_ed25519# Ed25519算法~/.ssh/id_rsa# RSA算法~/.ssh/id_ecdsa# ECDSA算法~/.ssh/id_dsa# DSA算法已过时# 自定义命名推荐用于不同用途~/.ssh/github_ed25519 ~/.ssh/work_server_rsa ~/.ssh/personal_laptop_key ~/.ssh/aws_instance_key4. SSH如何知道有哪些私钥文件当执行ssh rootserver时SSH客户端会检查默认私钥文件按优先级顺序~/.ssh/id_ed25519~/.ssh/id_ecdsa~/.ssh/id_rsa~/.ssh/id_dsa检查ssh-agent中加载的密钥ssh-add-l# 列出已加载到agent的密钥检查配置文件指定的密钥# ~/.ssh/configHost server1 IdentityFile ~/.ssh/work_server_key Host github.com IdentityFile ~/.ssh/github_ed255195. 查看你本地的所有私钥要查看你本地有哪些SSH私钥文件# 列出所有私钥文件通常以id_开头或没有.pub后缀ls-la~/.ssh/# 或者更精确地查找ls-la~/.ssh/id_*ls-la~/.ssh/*|grep-v.pub$# 排除公钥文件6. 私钥文件的内容示例私钥文件内容示例id_ed25519-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW...长字符串... -----END OPENSSH PRIVATE KEY-----公钥文件内容示例id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK... userhostname7. 最佳实践使用多个私钥强烈建议为不同用途使用不同的私钥# 生成新的私钥不要覆盖现有的ssh-keygen-ted25519-f~/.ssh/github_key-Cgithubexample.comssh-keygen-ted25519-f~/.ssh/work_server_key-Cworkexample.com# 配置 ~/.ssh/configHost github.com UsergitIdentityFile ~/.ssh/github_key IdentitiesOnlyyesHost work-server HostName work.example.com User admin IdentityFile ~/.ssh/work_server_key IdentitiesOnlyyes8. 调试SSH使用的私钥要查看SSH连接时具体使用了哪个私钥ssh-vuserserver# 在输出中寻找# debug1: Offering public key: /home/user/.ssh/id_ed25519 ED25519 SHA256:xxx# debug1: Server accepts key: /home/user/.ssh/id_ed25519 ED25519 SHA256:xxx总结✅id_ed25519是一个私钥文件✅本地可以有多个私钥文件每个文件存储一个私钥✅每个私钥都有独立的文件不是所有私钥放在一个文件里✅常见的私钥文件id_ed25519,id_rsa,id_ecdsa等✅推荐做法为不同服务器/用途创建不同的私钥文件并通过~/.ssh/config管理这样设计的好处是安全性更高一个私钥泄露不会影响其他服务也更便于管理不同的访问权限。