2013-02-14 54 views
0

我試圖用root帳戶推送一大堆服務器上的一些公鑰,但是我想把這些新密鑰放在'postgres'用戶下。使用root帳戶在不同的用戶下推送公用密鑰在多個服務器上

我這樣做:

$ cat new_dba_keys.pub | ssh -l root 10.224.1.16 "su - postgres |cat >> ~/.ssh/authorized_keys" 
-bash: line 2: ssh-rsa: command not found 
-bash: line 4: ssh-rsa: command not found 

正如你所看到的,它不會工作。

回答

0

相反的su - postgres | cat ...可以使用su - postgres -c "cat ...",將放置文本postgre的目錄:

cat new_dba_keys.pub | ssh -l root 10.224.1.16 "su - postgres -c \"cat >> ~/.ssh/authorized_keys\"" 
+0

Noope。這並不行不通。 -bash:| cat:沒有這樣的文件或目錄 – cparfon 2013-02-14 09:07:54

+0

事實上,你會收到來自第2行和第4行的錯誤消息'-bash:line 2:ssh-rsa:command not found',而.pub文件應該只是一行。你有沒有檢查過這個文件,看它是否有額外的內容? – fedorqui 2013-02-14 09:12:31

+0

該文件是很好的隊友,我已經在同時修復了它。實際上,他們得到了推埠他們最終在/root/.ssh/authorized_keys :(:(我希望他們下postgres用戶 – cparfon 2013-02-14 09:18:17

相關問題