我正在尝试通过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
我用Google搜索,我只发现有同样问题却没有答案的人(用于将其从德语翻译成英语)。我还尝试了其他类似命令的“ls”,但返回了相同的错误。有人知道我做错了吗?
我正在使用Windows 10和Powershell 5.1
此致
帕特里克
答案 0 :(得分:0)
我有完全相同的问题。尝试使用SSHStream命令:
PS C:\> $SSHStream = New-SSHShellStream -Index 0
PS C:\> $SSHStream.WriteLine("uname -a")
PS C:\> $SSHStream.read()
Last login: Sat Mar 14 20:02:16 2015 from infidel01.darkoperator.com
[admin@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22
UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[admin@localhost ~]$