远程连接Mac操作ClaudeCode一直提示登录Invalid API key · Please run /login

远程连接Mac操作ClaudeCode一直提示登录

文档介绍

目录

简介

当通过 SSH 连接到 Mac 并使用 Claude CLI 时,可能会遇到需要反复解锁 Keychain 的问题,这会影响 CLI 的正常使用。

脚本工作原理

这个改进的脚本包含两个条件检查:

  1. [ -n "$SSH_CONNECTION" ]: 检查是否在 SSH 会话中
  2. [ -z "$KEYCHAIN_UNLOCKED" ] : 检查环境变量 KEYCHAIN_UNLOCKED 是否未设置

只有当两个条件都满足时,脚本才会:

  • 执行 security unlock-keychain 命令解锁 Keychain
  • 设置环境变量 KEYCHAIN_UNLOCKED=true 防止重复执行
为什么这个方案有效
  1. 避免重复解锁: 通过环境变量标记,确保在同一个会话中只解锁一次
  2. 解决输入问题: 防止 Claude CLI 创建的登录 shell 重复触发解锁命令
  3. 仅在需要时运行: 只在 SSH 连接时才执行,不影响本地使用
注意事项
  • Keychain 会话超时: 如教程中提到的,需要关注 Keychain 会话是否会超时,可能会影响长时间运行的 tmux 会话
  • 临时解决方案: 这是一个 workaround,理想情况下 Claude CLI 应该提供配置选项来禁用 Keychain 使用
  • 测试建议: 实施后测试 Claude CLI 的各项功能是否正常工作

解决方案详细步骤

第一步:定位配置文件

由于你使用的是 zsh,需要编辑 .zprofile 文件:

bash 复制代码
nano ~/.zprofile
# 或者使用你偏好的编辑器,如 vim ~/.zprofile

第二步:添加脚本代码

将以下代码添加到 .zprofile 文件的末尾:

bash 复制代码
# Unlock Keychain on login
if [ -n "$SSH_CONNECTION" ] && [ -z "$KEYCHAIN_UNLOCKED" ]; then
  security unlock-keychain ~/Library/Keychains/login.keychain-db
  export KEYCHAIN_UNLOCKED=true
fi

第三步:保存并退出编辑器

  • 如果使用 nano:按 Ctrl + X,然后按 Y 确认,再按 Enter
  • 如果使用 vim:按 Esc,输入 :wq,按 Enter

第四步:重新加载配置

bash 复制代码
source ~/.zprofile
相关推荐
pe7er2 天前
macOS 应用无法打开(权限问题)解决方案
macos·mac
harmful_sheep5 天前
mac生效的终端查看
macos
iOS门童5 天前
macOS 应用"已损坏"无法打开?一文搞懂 Gatekeeper 与解决方案
macos
NPE~6 天前
[工具分享]Maccy —— 优雅的 macOS 剪贴板历史管理工具
macos·教程·工具·实用工具
差不多程序员6 天前
Mac安装OpenClaw-cn保姆级教程
macos
dzl843946 天前
mac 安装python
开发语言·python·macos
Bruce_Liuxiaowei6 天前
在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程
macos·docker·容器·openclaw
阿捏利6 天前
详解Mach-O(十五)Mach-O __DATA_CONST
macos·ios·c/c++·mach-o
ShikiSuen6 天前
macOS 的 CpLk 中英切换卡顿的元凶在 InputMethodKit 本身
macos
xiayutian_c6 天前
如虎添翼-MacOS
macos