簡體   English   中英

使用 Plink 執行命令不起作用,但在 PuTTY 中執行

[英]Executing command using Plink does not work, but does in PuTTY

我正在嘗試創建一個 PowerShell 腳本以通過 SSH 連接到 Raspberry Pi 並執行一些命令。 我正在使用 Plink 通過命令行通過 SSH 連接到 Pi。 但是,我必須通過 SSH 連接到在 lshell 中運行的 Pi 用戶。 我可以將 PuTTY 放入 Pi 中,問題為零,但是在使用 Plink 時,我收到一條錯誤消息,指出我正在使用的命令被禁止。 我正在嘗試使用su ,它在通過非 Plink 使用 PuTTY 時有效。

我得到的錯誤如下:

plink : *** forbidden char/command over SSH: "su"
At line:1 char:1
+ plink -ssh pi@<IP> -pw <password> su
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (*** forbidden c... over SSH:         
"su":String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

This incident has been reported.

感謝您提供任何幫助。

與使用 PuTTY 登錄並鍵入command相比,使用plink ... command有兩個區別:

  1. plink ... command打開一個“exec”通道來運行命令。 雖然 PuTTY 使用登錄 shell 打開“shell”通道,但只有 shell 運行命令。

  2. plink ... command默認打開一個非交互式會話(無 TTY)。 PuTTY 打開一個交互式會話(使用 TTY)。


在 PuTTY 中測試 Plink 行為:

  1. Connection > SSH > Remote command 中輸入命令
  2. 檢查Connection > SSH > TTY > Don't allocation a pseudo-terminal

相反,要在 Plink 中測試 PuTTY 行為,請使用:

echo command | plink ...

還檢查 Plink -T / -t開關

這在 2 中表現為 PuTTY,但在 1 中則不然:

plink -t ... command

相反,這在 1 中表現為 PuTTY,但在 2 中則不然:

echo command | plink -T ...

試驗這些以找出導致您的特定問題的原因。

有關解決方案,請參閱.bat 中通過 Plink 的腳本行為不同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM