摘要:MacOS下免密登录的一些注意事项。

SSH免密登录
ssh免密登录的原理是在本机生成本机的ssh公钥和私钥,将公钥上传至待连接的主机,本机通过私钥进行ssh连接实现免密登录。

# ssh密钥生成命令
ssh-keygen
# ssh上传(复制)命令
# ssh-copy-id格式:ssh-copy-id -i 私钥 远程主机用户名@远程主机IP
# ssh-copy-id命令示例
ssh-copy-id -i ~/.ssh/id_liupp root@192.168.8.187
# ssh登录
# 命令格式: ssh -i 私钥 远程主机用户名@远程主机IP
# ssh登录示例:
ssh -i ~/.ssh/id_liupp root@192.168.8.187

关于这两个命令的具体用法可以通过搜索引擎查询.

# ssh免密连接命令
ssh root@IP

回车后仍然提示输入密码,通过搜索引擎查询,得出的结果是mac系统下需要使用“ssh-add”命令将私钥添加至ssh-agent高速缓存:

# ssh-add 命令格式
# ssh -add -K 私钥
# 示例:
ssh -add -K ~/.ssh/id_liupp
但输入后提示:

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参数对于Mac来说已经过期,需要将“-K”参数换成“–apple-use-keychain”:

# ssh-add 命令格式
# ssh -add -K 私钥
# 示例:
ssh-add --apple-use-keychain ~/.ssh/id_liupp

添加成功后再在终端执行 “ssh root@IP”即可实现免密登录。

存在问题及解决方案
经过使用发现一个问题,即是在本机重启后,免密登录会失效,经查询得知,ssh-add将私钥添加到高速缓存,但缓存在重启后会失效,需要每次重启后重新添加,在mac下的解决方案是:

MacOS Sonoma14.2.1系统SSH免密登录-LMLPHP
MacOS Sonoma14.2.1系统SSH免密登录-LMLPHP
MacOS Sonoma14.2.1系统SSH免密登录-LMLPHP

12-29 09:44