0

我正在尝试运行plink.exe在远程 UNIX 机器上执行命令。使用Putty登录时,我的命令执行成功。我的问题是当使用相同的凭据(相同的用户和密码)通过 plink 执行相同的命令时。

我不断收到一条消息“无法使用此帐户执行 UNIX shell 命令”。对于我输入的每个命令,我都会收到相同的消息。

我用来运行命令的语法是这样的:

  C:>plink.exe -pw PASSWORD -m FILENAME USER@REMOTEHOST

我也尝试过以不同的方式输入,例如:

  C:>plink.exe -l USER -pw PASSWORD -ssh REMOTEMACHINE -m FILENAME

但结果总是一样的。
我正在使用具有管理员功能的用户。

我很乐意得到任何帮助。

4

1 回答 1

2

我认为这个问题与交互式与非交互式模式有关。当您使用 putty 登录或在未指定命令的情况下调用 plink 时,您将处于交互模式。

但是,如果您指定一个命令或一个包含命令列表的文件,那么远程 shell 会将您的登录视为非交互式登录,并且显然会拒绝您的连接。

我不确定遥控器如何决定将您的登录视为交互式登录。我建议尝试以下选项之一:

  1. 将您的命令放入script.shshell 脚本并将其复制到远程服务器,然后像这样运行它:

    C:>plink.exe -pw PASSWORD USER@REMOTEHOST "bash /path/to/remote/script.sh"
    
  2. 如果您不想将脚本放在远程服务器上,可以尝试将本地输入重定向到远程 bash,但我不确定这在 Windows 中是否有效:

    C:>plink.exe -pw PASSWORD USER@REMOTEHOST bash < C:\path\to\local\script.sh
    

在这两个建议中,希望通过坚持bash,您的外壳将被视为交互式。

于 2013-06-02T13:06:46.280 回答