Git生成的SSH密钥存至本地项目仓库而非默认路径的疑问
SSH密钥无法保存到默认路径的问题解析与解决
核心问题原因
- 首次执行
ssh-keygen时,你手动输入了testkey作为密钥文件名,ssh-keygen会缓存上次的输入值,后续再次执行命令时会默认沿用这个文件名,而非自动切换到默认路径C:\Users\user-name/.ssh/id_rsa - 初始状态下你的用户目录没有
.ssh文件夹,部分环境中ssh-keygen不会自动创建该目录,加上你主动指定了testkey作为保存名,导致密钥直接生成在当前项目仓库目录中
解决步骤
- 清理旧密钥:进入本地项目仓库目录,删除
testkey和testkey.pub文件,避免后续操作混淆 - 生成默认路径密钥:重新执行命令
ssh-keygen -t rsa -b 4096 -C "my email",当出现提示Enter file in which to save the key (/c/Users/user-name/.ssh/id_rsa):时,直接按回车键(不要输入任何内容),即可将密钥保存到默认的.ssh目录下 - 验证生成结果:执行
ls -al ~/.ssh,应能看到id_rsa(私钥)和id_rsa.pub(公钥)文件;执行cat ~/.ssh/id_rsa.pub可查看公钥内容
权限配置注意
为确保SSH能正常使用密钥,需设置.ssh目录和密钥文件的正确权限:
- 在Git Bash或WSL环境下,执行:
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa - Windows图形界面下,右键
.ssh文件夹→属性→安全,设置仅当前用户拥有访问权限,移除其他用户的权限
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

