远程连接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
相关推荐
全栈探索者18 小时前
从素材到成片:ffmpeg 拼接、转码与字幕,一条流水线交付
macos·ffmpeg·aigc·comfyui·视频剪辑
向阳是我20 小时前
Mac 命令行获取 APK 公钥和证书 MD5 指纹
macos
lpfasd1231 天前
Ollama 还是 LM Studio:在 24GB 的 M6 Mac 上,我把 Ollama 卸载了
macos·策略模式
情 九1 天前
MCP 开发环境搭建:Mac 与 Windows 跑通 Python 服务和 stdio 客户端
windows·python·macos·mcp
摘星编程1 天前
Mac玩游戏选什么模拟器?MuMu Mac版体验:金铲铲165帧、明日方舟时停键,操作录制也上线了
macos·玩游戏·远程软件
DARLING Zero two♡1 天前
Mac远程控制Windows电脑:MacBook远控软件选购指南2026
macos·电脑
fengye2071611 天前
实验:CPython 迭代协议底层验证(`PyObject_GetIter` / `PyIter_Next`)
macos
DevLoom_2 天前
macOS 命令行 curl/git 报 SSL 证书错误?eMudhra 事件完整修复指南
git·macos·ssl
清水白石0082 天前
Python 安装与环境配置:Windows、macOS、Linux 完整指南(第2集)
windows·python·macos
hhhjhl2 天前
开源鸿蒙平台 CMP 三方库「compose-macos-26-ui」适配全流程
macos·开源·harmonyos