为什么这个 ssh 命令不起作用? (猫./文件 | ssh“cat | sudo -t -t 'cat > /root/location/file'”)

为什么这个 ssh 命令不起作用? (猫./文件 | ssh“cat | sudo -t -t 'cat > /root/location/file'”)

我正在尝试执行以下操作,但不太正确。

cat ~/Desktop/blah.png | ssh -t -t [email protected] "cat | sudo -i 'cat | /path/to/blah.png'"

我的公共 ssh 密钥位于[电子邮件受保护]用户的 .ssh 文件夹,因此不需要初始密码。当sudo -i命令最终启动时,它会提示我输入 root 密码,但立即失败,就像我按下了 Enter 键但我什至没有触摸键盘一样。我有一种感觉,也许该cat命令已被纳入密码提示中。输出如下所示:

trusktr@LENOVO-PC ~
$ cat ~/Desktop/win-8.1-missing-lockscreen-setting.png | ssh -t -t [email protected] "cat | sudo -i 'cat > /srv/http/default/htdocs/~/img/win-8.1-missing-lockscreen-setting.png'"
tcgetattr: Not a character device
[sudo] password for root:
You type like i drive.
[sudo] password for root:
Your mind just hasn't been the same since the electro-shock, has it?
[sudo] password for root:
Maybe if you used more than just two fingers...
sudo: 3 incorrect password attempts
Connection to 50.116.4.56 closed.

我无法通过 root 用户直接进行 ssh 访问,只能通过使用 root 密码访问 sudo 的普通用户进行访问。

我如何通过 ssh、通过非 root 用户将映像转移到根位置(全部用一个命令)?

答案1

它不起作用,因为您正在将 blah.png 键入sudo,这不是有效的密码。

这应该将所需的命令合并到一行中:

scp ~/Desktop/blah.png [email protected]:~/ && ssh -t -t [email protected] "sudo cp ~/blah.png /path/to/blah.png && rm ~/blah.png"

答案2

选项#1:scp将文件发送到您的帐户,然后ssh从终端将文件放入到位。

选项#2:如果您在尝试复杂复制之前sudo缓存身份验证、登录和root。 sudo(第二个sudo不需要密码)

(还,sudo使用你的密码,不是 root 的)

相关内容