终端SSH连接服务器报错:Bad configuration option: usekeychain 求助
解决SSH配置中
UseKeychain报错的问题 问题原因
你使用的是标准开源版本的OpenSSH 9.1p1,而UseKeychain是苹果定制版OpenSSH独有的配置项,标准版本无法识别该选项,因此读取配置文件时触发错误。SourceTree生成的配置里虽添加了IgnoreUnknown UseKeychain,但该指令仅作用于当前Host块,无法覆盖全局读取逻辑,导致连接非GitHub/Bitbucket主机时仍报错。
修复方案
方案1:将IgnoreUnknown设为全局配置
把IgnoreUnknown UseKeychain移到所有Host块之外,让整个配置文件的未知选项都被忽略:
# 全局配置,放在所有Host块之前 IgnoreUnknown UseKeychain # --- Sourcetree Generated --- Host XXXX-Bitbucket HostName bitbucket.org User XXXX PreferredAuthentications publickey IdentityFile /Users/me/.ssh/XXXX-Bitbucket UseKeychain yes AddKeysToAgent yes # ---------------------------- # --- Sourcetree Generated --- Host XXXX-GitHub HostName github.com User XXXX PreferredAuthentications publickey IdentityFile /Users/me/.ssh/XXXX-GitHub UseKeychain yes AddKeysToAgent yes # ----------------------------
方案2:移除UseKeychain选项
如果不需要苹果钥匙串管理SSH密钥,直接删除所有UseKeychain yes行即可:
# --- Sourcetree Generated --- Host XXXX-Bitbucket HostName bitbucket.org User XXXX PreferredAuthentications publickey IdentityFile /Users/me/.ssh/XXXX-Bitbucket AddKeysToAgent yes # ---------------------------- # --- Sourcetree Generated --- Host XXXX-GitHub HostName github.com User XXXX PreferredAuthentications publickey IdentityFile /Users/me/.ssh/XXXX-GitHub AddKeysToAgent yes # ----------------------------
方案3:切换到苹果自带的OpenSSH
Mac系统自带的OpenSSH支持UseKeychain,切换步骤如下:
- 查看当前SSH路径:
which ssh - 若显示第三方路径(如
/usr/local/bin/ssh),执行命令备份并替换:sudo mv /usr/local/bin/ssh /usr/local/bin/ssh_backup - 重启终端后,再次执行
which ssh,若显示/usr/bin/ssh则切换成功,此时连接服务器不会报错。
内容的提问来源于stack exchange,提问作者Another Dude
相关产品推荐
相关产品推荐

