GoLand SSH 连接失败的根本原因是其不读取 ~/.ssh/config 或系统 SSH Agent,必须手动指定权限为600的OpenSSH格式私钥绝对路径,并在SSH配置和Deployment中分别设置Key pair认证,同时确保ssh-agent已加载密钥。

GoLand 用 SSH 私钥连接远程主机失败,Test Connection 一直红叉
根本原因不是私钥格式错,而是 GoLand 默认不读取 ~/.ssh/config 或系统 SSH Agent 的密钥,它只认你手动指定的私钥文件路径,且对权限极其敏感。
- 确认私钥文件权限是
600:运行chmod 600 ~/.ssh/id_rsa(或你实际的私钥路径),否则 GoLand 拒绝加载 - 在
Tools → SSH Configurations添加新配置时,认证方式必须选OpenSSH config and authentication agent—— 注意这个选项名里带 “and”,不是单选 “OpenSSH config” 或 “Authentication agent” - 如果选了该选项仍连不上,检查本地
ssh-agent是否运行:eval $(ssh-agent)+ssh-add ~/.ssh/id_rsa;GoLand 依赖这个进程暴露的 socket - 别用 PuTTY 格式的
.ppk文件——GoLand 不支持,必须是 OpenSSH 格式(-----BEGIN RSA PRIVATE KEY-----开头)
Deployment 配置里填了私钥路径,但上传时提示 Permission denied (publickey)
这是典型路径映射错位:Deployment 的 SFTP 连接和 SSH 配置用的是两套独立凭证体系,即使你刚在 SSH Configurations 里配好了私钥,Deployment 里还得再配一遍。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 进
Tools → Deployment → Configuration → + → SFTP,Host/Port/Root path 填完后,点开Auth type下拉菜单,选Key pair -
Private key file必须重新指定一次私钥的**绝对路径**(如/home/user/.ssh/id_rsa),不能留空、不能写相对路径、不能指望它自动继承 SSH Configurations 的设置 - 确保远程用户对目标目录有写权限:
ls -ld /path/to/deploy,若属主是root,普通用户同步会静默失败 - 测试上传:右键项目根目录 →
Deployment → Upload to …,看底部File Transfer窗口是否显示成功,别只信右上角小图标
私钥有密码(passphrase),GoLand 提示输入却反复失败
GoLand 的密钥密码输入框不支持粘贴,且对空格、换行极其敏感;输错三次会锁死当前连接配置,必须删掉重来。
- 首次输入时,手动敲入密码,**不要复制粘贴**,尤其避免末尾多一个空格
- 如果已输错,不要反复点 OK,直接关掉对话框,在
SSH Configurations列表里删掉该条目,新建一个 - 更稳妥的做法:用
ssh-keygen -p -f ~/.ssh/id_rsa把 passphrase 清空(仅限开发机),之后 GoLand 就不再弹窗 - 清空后记得
ssh-add ~/.ssh/id_rsa重新加载到 agent,否则OpenSSH config and authentication agent方式也会失效
为什么改了 ~/.ssh/config 里的 IdentityFile,GoLand 还是连不上?
因为 GoLand 的 SSH Configurations 和 Deployment 两个模块都**不解析 ~/.ssh/config**。那个文件只对命令行 ssh 生效,对 IDE 是透明的。
- 你在
~/.ssh/config里写的Host myserver\n IdentityFile ~/.ssh/deploy_key,对 GoLand 完全无效 - 必须在每个需要的地方(SSH Configurations、Deployment SFTP、Remote SDK 配置)都显式填入
/home/user/.ssh/deploy_key这样的绝对路径 - 唯一能复用配置的方式:用
OpenSSH config and authentication agent+ 正确启动ssh-agent+ssh-add所有密钥——这时 GoLand 通过 agent 获取 key,就绕过了路径硬编码
Auth type 没切到 Key pair,还傻等它自动继承 SSH 配置。

















