远程连接Mac操作ClaudeCode一直提示登录Invalid API key · Please run /login
远程连接Mac操作ClaudeCode一直提示登录
文档介绍
目录
- 远程连接Mac操作ClaudeCode一直提示登录
- 文档介绍
- 简介
- 脚本工作原理
- 为什么这个方案有效
- 注意事项
- 解决方案详细步骤
- 第一步:定位配置文件
- 第二步:添加脚本代码
- 第三步:保存并退出编辑器
- 第四步:重新加载配置
简介
当通过 SSH 连接到 Mac 并使用 Claude CLI 时,可能会遇到需要反复解锁 Keychain 的问题,这会影响 CLI 的正常使用。
脚本工作原理
这个改进的脚本包含两个条件检查:
[ -n "$SSH_CONNECTION" ]
: 检查是否在 SSH 会话中[ -z "$KEYCHAIN_UNLOCKED" ]
: 检查环境变量KEYCHAIN_UNLOCKED
是否未设置
只有当两个条件都满足时,脚本才会:
- 执行
security unlock-keychain
命令解锁 Keychain - 设置环境变量
KEYCHAIN_UNLOCKED=true
防止重复执行
为什么这个方案有效
- 避免重复解锁: 通过环境变量标记,确保在同一个会话中只解锁一次
- 解决输入问题: 防止 Claude CLI 创建的登录 shell 重复触发解锁命令
- 仅在需要时运行: 只在 SSH 连接时才执行,不影响本地使用
注意事项
- Keychain 会话超时: 如教程中提到的,需要关注 Keychain 会话是否会超时,可能会影响长时间运行的 tmux 会话
- 临时解决方案: 这是一个 workaround,理想情况下 Claude CLI 应该提供配置选项来禁用 Keychain 使用
- 测试建议: 实施后测试 Claude CLI 的各项功能是否正常工作
解决方案详细步骤
第一步:定位配置文件
由于你使用的是 zsh,需要编辑 .zprofile
文件:
nano ~/.zprofile
# 或者使用你偏好的编辑器,如 vim ~/.zprofile
第二步:添加脚本代码
将以下代码添加到 .zprofile
文件的末尾:
# Unlock Keychain on login
if [ -n "$SSH_CONNECTION" ] && [ -z "$KEYCHAIN_UNLOCKED" ]; thensecurity unlock-keychain ~/Library/Keychains/login.keychain-dbexport KEYCHAIN_UNLOCKED=true
fi
第三步:保存并退出编辑器
- 如果使用 nano:按
Ctrl + X
,然后按Y
确认,再按Enter
- 如果使用 vim:按
Esc
,输入:wq
,按Enter
第四步:重新加载配置
source ~/.zprofile