使用 ssh-copy-id 命令來設置 SSH 免密登錄,并確保所有相關文件和目錄權限正確設置,可以按照以下步驟進行:
步驟 1:在源服務器(198.120.1.109)生成 SSH 密鑰對
如果還沒有生成 SSH 密鑰對,首先需要在源服務器上生成它:
ssh-keygen -t rsa -b 2048
按提示操作,可以直接按 Enter 使用默認路徑(~/.ssh/id_rsa)和空密碼。
完成后,id_rsa 是私鑰,id_rsa.pub 是公鑰,它們將保存在 ~/.ssh/ 目錄下。
步驟 2:使用 ssh-copy-id 將公鑰復制到目標服務器(198.120.1.113)
在源服務器 198.120.1.109 上,使用以下命令將源服務器的公鑰復制到目標服務器 198.120.1.113:
ssh-copy-id root@198.120.1.113
將 root替換為目標服務器 198.120.1.113 你自己的用戶名。
該命令會要求你輸入目標服務器的密碼,輸入正確的密碼后,公鑰(id_rsa.pub)將被自動復制到目標服務器的 ~/.ssh/authorized_keys 文件中。
步驟 3:確認目標服務器(198.120.1.113)權限設置
確保目標服務器的 ~/.ssh 目錄和 authorized_keys 文件權限正確設置,否則免密登錄會失敗。
登錄目標服務器 198.120.1.113:
ssh remote_user@198.120.1.113
確保目標服務器的 ~/.ssh 目錄權限為 700,authorized_keys 文件權限為 600:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
~/.ssh 目錄的權限需要為 700,確保只有文件所有者可以訪問和修改該目錄。
authorized_keys 文件的權限需要為 600,確保只有文件所有者可以讀取和寫入該文件。
步驟 4:確認源服務器(198.120.1.109)權限設置
在源服務器 198.120.1.109 上,確保 ~/.ssh 目錄和 id_rsa 文件權限也正確:
登錄源服務器 198.120.1.109:
ssh root@198.120.1.109
確保源服務器的 ~/.ssh 目錄權限為 700,id_rsa 文件權限為 600:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
~/.ssh 目錄的權限需要為 700。
id_rsa 文件的權限需要為 600,確保只有文件所有者可以讀取該私鑰。
步驟 5:確認免密登錄是否成功
現在,你可以測試源服務器是否可以免密登錄到目標服務器。執行以下命令,檢查是否能夠成功登錄而不需要輸入密碼:
ssh root@198.120.1.113
如果一切配置正確,你應該可以直接登錄目標服務器,而不需要輸入密碼。
步驟 6:反向配置(如果需要)
如果你還希望從目標服務器(198.120.1.113)免密登錄到源服務器(198.120.1.109),你可以在目標服務器上生成 SSH 密鑰,并使用 ssh-copy-id 將目標服務器的公鑰復制到源服務器的 authorized_keys 文件中。具體步驟與上面相同。
在目標服務器(198.120.1.113)上生成 SSH 密鑰對:
ssh-keygen -t rsa -b 2048
將目標服務器的公鑰復制到源服務器的 authorized_keys 文件中:
ssh-copy-id remote_user@198.120.1.109
確保源服務器上的 ~/.ssh 目錄和 authorized_keys 文件權限正確設置:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
測試是否可以從目標服務器免密登錄到源服務器:
ssh root@198.120.1.109
總結:
ssh-copy-id 命令幫助你將公鑰復制到目標服務器的 ~/.ssh/authorized_keys 文件中,以實現免密登錄。
確保目標服務器和源服務器的 .ssh 目錄和文件權限正確設置:~/.ssh 設置為 700,authorized_keys 和 id_rsa 設置為 600。
使用上述步驟,你可以在兩臺服務器之間實現 SSH 免密登錄。