MacOS Sonoma14.2.1系統SSH免密登入

Mr老劉發表於2023-12-29

摘要: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 許可協議。轉載請註明出處!

相關文章