Bash 使用根帐户但在不同用户下在多台服务器上推送公钥
我试图使用root帐户在一大堆服务器上推送一些公钥,但我想把这些新密钥放在“postgres”用户下 我正在这样做:Bash 使用根帐户但在不同用户下在多台服务器上推送公钥,bash,public-key,Bash,Public Key,我试图使用root帐户在一大堆服务器上推送一些公钥,但我想把这些新密钥放在“postgres”用户下 我正在这样做: $ 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 如您所见
$ 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
如您所见,它将不起作用。您可以使用
su-postgres-c“cat…”代替su-postgres | cat…
,并将文本放在postgres的目录中:
cat new_dba_keys.pub | ssh -l root 10.224.1.16 "su - postgres -c \"cat >> ~/.ssh/authorized_keys\""
努普。那不行-bash:| cat:没有这样的文件或目录事实上,您从第2行和第4行获得错误消息-bash:line 2:ssh rsa:command not found
,而file.pub应该只有一行。你检查过这个文件了吗,看它是否有额外的内容?这个文件很好,伙计,我同时已经把它修好了。实际上,它们被推到了/root/.ssh/authorized_keys:((我希望它们在postgres userEdit下生成。而不是su-postgres | cat…
你可以使用su-postgres-c“cat…”
并将文本放在postgre的目录中。哈哈,这是一个团队工作!我编辑了第一个答案,所以它看起来就是一个好答案。