MacOS Sonoma14.2.1系统SSH免密登录
摘要: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
本文链接: https://it-liupp.gitee.io/2023/12/25/mac-ssh-autologin/
博客园链接:https://www.cnblogs.com/boyliupan/p/17934079.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点