远程连接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
相关推荐
Liekkas Kono5 小时前
macOS 27 安装 VMware Fusion 和 Win11 经验
macos·win11·vmware
shark-chili2 天前
关于AI辅助编程的认知
数据库·人工智能·redis·macos·缓存
zwd20052 天前
Mac 上写英文遇到不会的词,有哪些工具?输入法、翻译软件、写作助手怎么选
人工智能·macos·效率工具·英语写作·输入法·deepl·翻译工具
33三 三like2 天前
Jx-Mac 本地部署过程总结
macos
大象AI共学3 天前
想在手机上读 Obsidian?Mac → iPhone / 安卓的零成本方案
macos·智能手机·iphone
sysinside4 天前
如何创建可引导的 macOS Golden Gate 27 安装介质
macos
Dr.Buho4 天前
macOS 27 升级教程:兼容机型、三种安装方法与降级提示
经验分享·macos
sysinside4 天前
macOS Golden Gate 27.0 (26A428) 正式版 Boot ISO 原版可引导映像下载
macos
黑科技iOS上架5 天前
Cocos应用App Store4.3被拒怎么自查
macos·ios·objective-c·cocoa·审核·ios混淆·cocos混淆
典典分享指南5 天前
AI 配图的排版规范
macos·docker·github·vim·visual studio