运行 使用 WinSCP .NET 程序集命令 sudo bash
Run command sudo bash with WinSCP .NET assembly
我正在尝试使用 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
不是最终目标。您宁愿执行一些命令,对吗?如果您提供更多详细信息,您可能会得到更具体的答案。
我正在尝试使用 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
不是最终目标。您宁愿执行一些命令,对吗?如果您提供更多详细信息,您可能会得到更具体的答案。