1

我正在尝试sudo bash使用 VB.NET 和 WinSCP 运行命令。

我正在使用这段代码:

Try
    Dim mySessionOptions As New SessionOptions
    With mySessionOptions
        .Protocol = Protocol.Sftp
        .HostName = "10.5...."
        .UserName = "hereGoesUsername"
        .Password = "hereGoesPassword"
        .SshHostKeyFingerprint = "ssh-rsa 2048 ......"
    End With
    mySession.Open(mySessionOptions)
    Try
        mySession.ExecuteCommand("sudo bash").Check()

最后一行给了我一个错误

sudo:不存在 tty,也没有指定 askpass 程序。

我无法输入密码。如果我在 Windows 上使用命令行ssh username@host,那么它会要求输入密码,我输入然后我可以运行sudo bash并再次输入密码,但是如何使用 WinSCP 呢?

4

1 回答 1

1

您不能使用 WinSCP 提供密码。阅读有关执行远程命令时 WinSCP 的技术限制

唯一的选择是允许用户在不提供密码的情况下执行您的命令。

有关一般建议,请参阅登录后如何更改用户(例如 su root)?

这篇文章是关于允许一般访问的。对于您的特定情况,您可能只能启用特定命令。

但你并没有真正告诉我们你想要达到什么目标。我想这sudo bash不是最终目标。你宁愿想执行一些命令,对吧?如果您向我们提供更多详细信息,您可能会得到更具体的答案。

于 2015-05-26T05:22:47.997 回答