[原创] 解决MAC OS的"ssh-add: illegal option -- K"错误

今天在MAC OS上用 brew install openssh 之后,再用iTerm2打开一个新窗口的时候,都会提示以下错误:

ssh-add: illegal option -- K

usage: ssh-add [options] [file …]

在我的例子中,是由于安装openssh之后装上了一个新的ssh-add程序,和MAC OS原来自带的ssh-add有些不一样,MAC自带的ssh-add程序包含-K参数,而openssh带的那个ssh-add没有-K参数,因此不能识别,从而造成了错误。

可以验证一下:

codelast@codelast:~$ which ssh-add
/usr/local/bin/ssh-add

codelast@codelast:~$ ll /usr/local/bin/ssh-add
lrwxr-xr-x 1 codelast admin 35 Oct 5 16:14 /usr/local/bin/ssh-add -> ../Cellar/openssh/7.8p1/bin/ssh-add*

可见确实是openssh装上的ssh-add。

然后再 echo $PATH 看一下,里面确实含有 /usr/local/bin/ 这个路径。
文章来源:https://www.codelast.com/
而MAC OS原版的ssh-add,是在 /usr/bin/ssh-add 这里。
所以现在问题就变成了,如何让默认的 ssh-add 命令,使用MAC OS自带的那个 ssh-add?有一个特别简单的方法是,在 .bash_profile 中定义一个别名:

alias ssh-add='/usr/bin/ssh-add'

然后问题就解决了。

2022.01.15更新
升级到 macOS Monterey 系统之后,使用 ssh-add -K -A 命令会打印出下面的WARNING信息:

The -K and -A flags are deprecated and have been replaced by the --apple-use-keychain and --apple-load-keychain flags, respectively.  To suppress this warning, set the environment variable APPLE_SSH_ADD_BEHAVIOR as described in the ssh-add(1) manual page.

说明 -K -A 参数都过时了,此时你只需要用下面的命令替代就可以了:
/usr/bin/ssh-add --apple-use-keychain --apple-load-keychain

文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤ 
转载需注明出处:codelast.com 
感谢关注我的微信公众号(微信扫一扫):

wechat qrcode of codelast

发表评论