使用1Password SSH Agent认证远程主机/GitHub时SSH私钥无法识别求助
使用1Password SSH Agent管理SSH密钥的配置与认证故障排查
配置说明
所有SSH公私密钥对存储在1Password中,依赖1Password SSH Agent完成远程SSH服务器或GitHub的认证,对应系统配置如下:
Mac系统配置
编辑~/.ssh/config文件,添加以下内容:
Host github.com User git HostName github.com IdentityAgent ~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock Host * IdentityAgent ~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock
Linux系统配置
编辑~/.ssh/config文件,添加以下内容:
Host github.com User git HostName github.com IdentityAgent ~/.1password/agent.sock Host * IdentityAgent ~/.1password/agent.sock
问题描述
原本正常的系统突然无法完成SSH认证。通过ssh -vvv排查发现:ssh-add -l已列出对应远程系统的私钥,但该私钥未被SSH客户端找到或选用。
排查与解决步骤
确认1Password SSH Agent状态
检查1Password后台运行状态及SSH代理功能:- Mac:打开1Password → 偏好设置 → SSH代理,确保「启用SSH代理」已勾选
- Linux:执行
systemctl --user status 1password确认服务运行,同时检查SSH代理功能是否开启
验证Agent套接字路径有效性
检查套接字文件是否存在且权限正常:# Mac系统 ls -la ~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock # Linux系统 ls -la ~/.1password/agent.sock若套接字不存在,重启1Password应用重新生成。
强制SSH使用指定密钥
在对应Host配置块中添加IdentitiesOnly yes,强制SSH仅使用Agent提供的密钥:# Mac示例 Host github.com User git HostName github.com IdentityAgent ~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock IdentitiesOnly yes重置SSH Agent缓存
清空缓存后重启1Password自动重新加载密钥:ssh-add -D检查SSH配置优先级
确认~/.ssh/config中没有更具体的Host规则覆盖当前配置,避免优先级冲突。
内容的提问来源于stack exchange,提问作者Kai Walter
相关产品推荐
相关产品推荐

