如何通过“sudo -ui”使用管道?

如何通过“sudo -ui”使用管道?

我有这个命令

cat ~/.ssh/id_dsa.pub | ssh root@[my_server] "cat >> ~/.ssh/authorized_keys"

sudo -iu user1我怎样才能在第二个之前做同样的事情cat?也就是说,我想在登录后更改用户。

答案1

如果您不介意将密钥也显示在屏幕上(它是公钥,因此这不是什么安全问题),您应该能够使用以下方法tee来避免重定向问题:

cat  ~/.ssh/id_dsa.pub \
| ssh root@server 'sudo -i -u user1 tee -a ~user1/.ssh/authorized_keys'

答案2

尝试这个:

cat ~/.ssh/id_dsa.pub | ssh root@[my_server] $'sudo -i -u user1 bash -c "cat - >> ~/.ssh/authorized_keys"'

相关内容