我正在尝试创建一个PowerShell脚本,以SSH连接到Raspberry Pi并执行一些命令。我正在使用Plink将SSH连接到Pi over命令行。但是我必须通过SSH连接到在lshell中运行的Pi用户。我可以通过零问题将PuTTY放到Pi中,但是当使用Plink时,我得到一个错误,说我正在使用的命令是禁止的。我正在尝试使用su
,这在使用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.
感谢您提供任何帮助。
答案 0 :(得分:0)
使用plink ... command
与使用PuTTY登录并键入command
相比,存在两个不同之处:
plink ... command
打开&#34; exec&#34;通道运行命令。当PuTTY打开&#34; shell&#34;使用登录shell的通道,只有shell运行命令。
plink ... command
会打开一个非交互式会话(无TTY)。 PuTTY打开一个交互式会话(使用TTY)。
测试PuTTY中的Plink行为:
相反,要在Plink中测试PuTTY行为,请使用:
echo command | plink ...
另请查看Plink -T
/-t
switches。
这表现为2中的PuTTY,但不是1:
plink -t ... command
相反,它在1中表现为PuTTY,但不在2中表示
echo command | plink -T ...
试验这些内容,找出造成您特定问题的原因。