IntelliJ IDEA通过SSH-Key连接Git仓库失败求助
解决IntelliJ IDEA无法读取SSH密钥的问题
嘿,我来帮你搞定这个IDEA识别SSH密钥的问题!从你的描述来看,Git Bash已经能正常用SSH访问GitHub,但IDEA却弹密码框,大概率是IDEA的SSH配置和你系统的配置没对齐,或者密钥路径/权限有问题,咱们一步步来排查:
1. 先修正SSH配置文件的密钥路径
你提到在ssh-config里添加了IdentityFile ~/.ssh/id_dsa,但实际你的密钥文件是id-rsa(应该是id_rsa吧?可能打错了)——这明显不匹配啊!SSH会找不到正确的密钥文件,自然会弹密码框。
- 打开
~/.ssh/config文件(如果没有就新建一个),把那行改成:IdentityFile ~/.ssh/id_rsa - 还要确保这个config文件的权限是安全的,在Git Bash里执行:
权限不对的话,SSH会拒绝读取这个配置文件。chmod 600 ~/.ssh/config
2. 让IDEA使用系统原生的SSH客户端
IDEA默认可能用自己内置的SSH客户端,它不一定会读取你系统里的SSH配置。咱们让它用你Git Bash里的那个SSH:
- 打开IDEA的设置(快捷键
Ctrl+Alt+S,或者点击File > Settings) - 找到
Version Control > Git选项 - 在
SSH executable下拉菜单里,选择Native(也就是使用系统的SSH) - 点击
Apply保存设置
3. 手动在IDEA里指定SSH密钥
如果上面的方法还不行,咱们直接在IDEA里把密钥配置好:
- 打开设置,找到
Tools > SSH Configurations - 点击左上角的
+号,新建一个配置:- Host:填
github.com - Port:填
22 - User:填
git
- Host:填
- 切换到
Authentication标签,选择SSH key,然后点击右边的...按钮,找到你本地的id_rsa私钥文件(注意是不带.pub的那个!) - 保存配置后,回到Git的远程仓库设置,确保仓库地址是
git@github.com:<你的用户名>/<仓库名>.git格式
4. 检查密钥文件的权限
SSH对密钥文件的权限要求很严格,权限太松会被认为不安全,直接拒绝使用:
在Git Bash里执行这两条命令,修正权限:
chmod 600 ~/.ssh/id_rsa # 私钥必须是600权限,只有自己能读写 chmod 644 ~/.ssh/id_rsa.pub # 公钥可以是644,允许其他人读
5. 最后重启IDEA测试
改完配置后,最好重启一下IDEA让设置生效。重启后,你可以在IDEA的Terminal里执行:
ssh -T git@github.com
如果出现成功认证的提示,那说明问题解决了,再去克隆或者执行Git命令就不会弹密码框啦!
另外提一句:你用PuTTY Gen生成密钥的时候,要确保导出的是OpenSSH格式的私钥,不是PuTTY专属的.ppk文件——不过你已经有id_rsa文件了,应该是做对了,要是之前导出的是ppk,记得重新导出成OpenSSH格式哦。
内容的提问来源于stack exchange,提问作者Marcin Chojniak




