【发布时间】:2018-02-08 05:28:19
【问题描述】:
我正在尝试通过 powershell 中的 Posh-SSH 模块连接到 Netscaler SDX 服务器,以搜索特定文件然后下载它。如果我用 putty 连接到服务器,它可以工作,然后我可以输入“shell”来打开一个普通的 bash 控制台。 当我尝试与 powershell 连接时,我使用以下命令。
$hostname = [ip]
$user = [username]
$password = [password]
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential -ArgumentList
$user, $secureStringPwd
$ssh = New-SSHSession -ComputerName $HostName -Credential $creds
这会创建一个仍然可以正常工作的 ssh 会话。接下来我使用 Invoke-SSHCommand。
Invoke-SSHCommand -SessionId ssh.SessionId -Command "shell"
它加载了一段时间,然后抛出这个异常:
Exception calling "EndExecute" with "1" argument(s): "Command
'shell' has timed out."
At C:\Users\giapsh\Documents\WindowsPowerShell\Modules\posh-ssh\Posh-
SSH.psm1:266 char:25
+ $Output = $_.cmd.EndExecute($_.Async)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SshOperationTimeoutException
我用谷歌搜索了它,我只发现有人有同样的问题但没有答案(用它来从德语翻译成英语)。我还尝试了其他命令,例如“ls”,但返回了相同的错误。有人知道我做错了什么吗?
我使用的是 Windows 10 和 Powershell 5.1
问候
帕特里克
【问题讨论】:
-
我相信这里的问题是
Posh SSH运行一个命令然后返回输出。当您执行shell时,它会运行命令并等待输出,但由于该命令是一个交互式shell,因此它会超时等待返回。 Posh SSH 不像 PuTTy,而是像 Plink
标签: powershell ssh