我有兩臺服務器,一臺在Amazon EC2實例(t1.medium)中,另一臺在Microsoft Azure(中型)實例中。這兩臺服務器都具有相同的配置Ubuntu LTS 12.04.1, 64-bit arch
運行PostgreSQL 9.1
。我需要在Azure上設置災難恢復系統(通過pgbarman
開啓Amazon實例數據庫的WAL歸檔以用於我的特定數據備份計劃)。ssh:亞馬遜EC2和Azure中的pgbarman設置問題
雖然經歷的pgbarman-docs,的強制性要求之一是看過那部,沒有密碼認證/提示在兩個所需
ssh
通信結束。 (Pgbarman
的先決條件是[email protected]
到ssh
直接到[email protected]
,反之亦然,見Getting started with Pgbarman)。
但我對登錄到這些情況的複雜性都低於:
- 亞馬遜EC2有
.pem
文件,無需任何口令認證訪問:ssh -i my-pem-file.pem [email protected]
- Azure不具有
.pem
文件。相反,它可以採用密碼機制進行訪問:ssh [email protected]
儘管如此,使設置我做以下,
- 我通過
ssh-keygen
從[email protected]
創建的密鑰文件postgres-barman.pub
。 - 通過
ssh-copy-id -i [email protected]
傳輸該文件到亞馬遜(請參閱下面詳細信息的鏈接)
我的問題是:
SSH天青亞馬遜:
- 我不能將此文件傳輸到
postgres
用戶:cat postgres-barman.pub | ssh -i my-pem-file.pem [email protected] 'cat >> .ssh/authorized_keys'
但如果我更改目的地的用戶到ubuntu
,文件被複制。 - 傳輸文件後(通過
ubuntu
用戶),我嘗試這樣做:ssh [email protected]
。它失敗。
- 我不能將此文件傳輸到
SSH亞馬遜天青
- 同樣的文件現在居住在兩側。不過,如果我發出
ssh [email protected]
,它會要求輸入密碼認證(在Azure實例的/etc/ssh/sshd_config
中設置爲yes
)。我無法繼續使用barman
pre-req。
- 同樣的文件現在居住在兩側。不過,如果我發出
亞馬遜只允許通過
ubuntu
用戶編輯ssh
。我需要爲postgres
用戶啓用此功能。這可以做到嗎?
注:亞馬遜有PasswordAuthentication
設置爲no
在它的sshd_config
文件。
參考文獻:
- 的ssh-copy-id命令:
azure網站上有關於如何設置基於密鑰的ssh登錄的指南(您需要將密鑰包裝在X.509中,但有一步一步的指南)。你顯然不能寫入其他用戶的主目錄 - 這將是一個可怕的安全漏洞。使用su/sudo複製Linux端的密鑰文件。不要忘記適當地設置所有權+權限。 –
您也可以像使用EC2,FYI一樣對Azure虛擬機使用SSH身份驗證。如果通過REST或SDK創建,則有參數;如果要在門戶中創建,請確保使用更高級的創建選項而不是「快速創建」,以便能夠上載.pem文件。 –