Ssh

為什麼這個 ssh 命令不起作用?(cat ./file | ssh <user@host> ‘cat | sudo -t -t ‘cat > /root/location/file’’)

  • January 30, 2014

我正在嘗試執行以下操作,但這並不完全正確。

cat ~/Desktop/blah.png | ssh -t -t trusktr@50.116.4.56 "cat | sudo -i 'cat | /path/to/blah.png'"

我在 trusktr@50.116.4.56 使用者的 .ssh 文件夾中有我的公共 ssh 密鑰,因此不需要初始密碼。當sudo -i命令最終啟動時,它會提示我輸入 root 密碼,但立即失敗,就好像我按下了 enter 但我什至沒有觸摸鍵盤一樣。我有一種感覺,也許該cat命令被放入密碼提示符中。輸出如下所示:

trusktr@LENOVO-PC ~
$ cat ~/Desktop/win-8.1-missing-lockscreen-setting.png | ssh -t -t trusktr@50.116.4.56 "cat | sudo -i 'cat &gt; /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 使用者將圖像擷取到 root 位置,所有這些都在一個命令中?

它不起作用,因為您將 blah.png 放入sudo,這不是有效的密碼。

這應該將所需的命令組合到一行:

scp ~/Desktop/blah.png trusktr@50.116.4.56:~/ && ssh -t -t trusktr@50.116.4.56 "sudo cp ~/blah.png /path/to/blah.png && rm ~/blah.png"

選項#1:scp將文件存入您的帳戶,然後ssh從終端輸入並放置文件。

選項#2:如果您sudo記憶體了身份驗證,sudo請在嘗試複雜副本之前登錄並進入根目錄。(第二個sudo不需要密碼)

(另外,sudo使用您的密碼,而不是 root 的)

引用自:https://unix.stackexchange.com/questions/110841