[英]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
有兩個區別:
plink ... command
打開一個“exec”通道來運行命令。 雖然 PuTTY 使用登錄 shell 打開“shell”通道,但只有 shell 運行命令。
plink ... command
默認打開一個非交互式會話(無 TTY)。 PuTTY 打開一個交互式會話(使用 TTY)。
在 PuTTY 中測試 Plink 行為:
相反,要在 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.