您的当前位置:首页正文

MacOS Sonoma14.2.1系统SSH免密登录

2024-10-17 来源:个人技术集锦

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

系统环境
操作系统:macOS Sonoma 14.2.1

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下的解决方案是:

1.在“应用程序”中的找到“自动操作”应用(或CTRL+SPACE)搜索自动操作
2.打开后默认弹出选择文件对话框,点击“取消”,点击启动栏的自动操作图标,“选取文稿类型”中选择“应用程序”:
3.左侧“资源库”选择“实用工具”,双击右侧的“运行shell脚本”将ssh-add命令复制至运行脚本脚本中,点击标题栏左侧的“未命名”,起个名字(这里命名为add-ssh-key)并保存至指定位置。
4.打开“系统设置”,左侧搜索栏搜索“登录项”,在“登录项”的“登录时打开”中将保存的自动执行程序(add-ssh-key)添加进来.
5.重启后验证,至此配置完毕。
6.操作步骤图示见下方:



本文作者: Mr Liu
本文链接:
博客园链接:
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

显示全文