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

我正在使用此代码:

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: no tty present and no askpass program specified.



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

请您参考如下方法:

您不能使用WinSCP提供密码。了解有关technical limitations of WinSCP when executing remote commands的信息。

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

有关一般建议,请参见How do I change user after login (e.g. su root)?

本文是关于允许常规访问的。对于您的特定情况,您可能只能启用特定的命令。

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!