2025/12/10

Linux主機間排程傳送檔案 不使用帳號密碼

   環境:

Linux 主機A,要設定排程,傳送特定檔案給Linux 主機B。

不想用帶有Linux 主機B的明碼帳號密碼 shell。



解決過程:

使用SSH Key-Based 身份驗證


A. 準備階段 ( A主機 )

  1. 取得公鑰內容:

Bash

cat ~/.ssh/id_dsa.pub

複製輸出的整行內容(從 ssh-dss 到最後的備註)。

B. 執行貼上與權限設定 ( B主機)

  1. 使用密碼連線到 B主機

Bash

ssh <B主機username>@<B主機IP>

  1. 確認或建立 .ssh 目錄並設定權限:

Bash

mkdir -p ~/.ssh

chmod 700 ~/.ssh

  1. 追加公鑰到 authorized_keys (使用您複製的公鑰內容替換 [您複製的公鑰內容])

請務必使用雙引號 >> 進行追加,避免覆蓋:

Bash

echo "[您複製的公鑰內容]" >> ~/.ssh/authorized_keys

  1. 設定 authorized_keys 權限:

Bash

chmod 600 ~/.ssh/authorized_keys

安全性注意

手動方式的最大風險就是權限設定。如果 ~/.ssh ~/.ssh/authorized_keys 的權限設定不正確 (例如太寬鬆,允許其他使用者寫入)SSH 伺服器會拒絕使用金鑰認證,並提示錯誤。


驗證階段 (無論使用哪個方法,必須進行)

 A主機上執行:

Bash

ssh <B主機username>@<B主機IP>

如果設定成功,系統將不會要求您輸入密碼,而是直接顯示 B主機的命令列提示符。

如果連線成功,您可以輸入 exit 退出,然後繼續設定您的 Cron Job

沒有留言:

張貼留言