2013-02-14 55 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

相关问题