Linux
如何讓 2 台 linux 機器在不詢問密碼的情況下相互接受 ssh 連接
我需要創建一個 cron 腳本,它將所有日誌從一台機器 scp 到日誌解析機器,但是當我 scp 時,我被要求插入密碼。通常,當我使用 Putty 連接到伺服器時,我使用
pageant
Putty 來允許代理轉發,當我選擇要連接的機器時,它會打開一個 putty 視窗並讓我直接進入 shell 而無需插入密碼。這發生在我將我的 rsa 公鑰插入每台機器上的 .ssh/authorized_keys 文件之後。我想在兩台伺服器之間做同樣的事情。
編輯:我不知道為什麼它被否決……我認為這是一個合理的問題。請告訴我我做錯了什麼:
[root@search-uk-1 .ssh]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ca:ab:4d:95:a4:ee:47:67:0c:e1:23:f3:73:46:67:7e root@search-uk-1.int.incredimail.com The key's randomart image is: +--[ RSA 2048]----+ | | | . | | ... | | oo+.. o | | .+S= + | | o o+ * . E | | =. * . | | + .. | | ..+. | +-----------------+ [root@search-uk-1 .ssh]# ssh-copy-id root@sawmill root@sawmill's password: Now try logging into the machine, with "ssh 'root@sawmill'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. [root@search-uk-1 .ssh]# ssh root@sawmill Enter passphrase for key '/root/.ssh/id_rsa': Last login: Mon Nov 5 11:32:33 2012 from search-uk-1.int.incredimail.com [root@sawmill ~]# exit logout Connection to sawmill closed. [root@search-uk-1 .ssh]# ssh root@sawmill Enter passphrase for key '/root/.ssh/id_rsa':
即使我從 .pub 文件中複製 rsa 密鑰並將其粘貼到遠端機器 .ssh/authorized_keys 上,它仍然會不斷要求我輸入密碼。
謝謝
我很簡單。在機器上生成您的 rsa_id
ssh-keygen -t rsa
之後只需執行
ssh-copy-id login@secondmachine
輸入密碼即可。之後,您應該能夠在沒有密碼的情況下從一台機器登錄到另一台機器(如果您想在兩台機器上都沒有密碼登錄,那麼您應該在第二台機器上執行相同的步驟)。但也許你應該考慮使用 rsync 來完成這項工作。使用環境變數 USER 和 RSYNC_PASSWORD 在 cronjobs 中使用 rsync 密碼非常簡單。把它放在你的腳本中
export USER=nameofrsyncuser export RSYNC_PASSWORD=password
之後,任何 rsync 命令都將使用此變數。它更安全,因為 rsync 使用者不是系統使用者。您必須配置 rsync 伺服器,但這非常簡單。您可以通過在 rsync 配置中使用 host allow 指令來保護 rsync 共享。