POSH-SSH/SSH.NET执行Linux命令响应超时问题排查求助
问题背景与排查需求
通过PowerShell脚本(依赖POSH-SSH)或.NET 4.8代码(依赖SSH.NET)执行echo $HOME、mkdir这类简单命令时出现异常:命令实际已成功执行(比如mkdir已创建目录),但客户端要等待4-8分钟才收到响应,POSH-SSH甚至会直接超时。
该问题仅出现在**RedHat Linux 8.9(OpenSSH_8.0p1、OpenSSL 1.1.1k)**的目标主机上:
- 使用Windows内置OpenSSH客户端执行命令完全正常
- 通过SSH.NET进行SFTP文件传输也无异常
已知POSH-SSH基于SSH.NET,需排查此问题是SSH.NET本身的缺陷,还是目标Linux主机的配置导致。
目标Linux主机sshd配置
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ Port 22 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key SyslogFacility AUTHPRIV PermitRootLogin yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes PermitEmptyPasswords no ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials no UsePAM yes X11Forwarding yes PrintMotd no PermitUserEnvironment yes ClientAliveInterval 300 ClientAliveCountMax 0 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS Subsystem sftp /usr/libexec/openssh/sftp-server
Windows端超时的PowerShell脚本
$linuxHost = "10.120.2.127" $user = "test" $password = "password" | ConvertTo-SecureString -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential ($user, $password) $sshSession = New-SSHSession -ComputerName $linuxHost -Credential $credential -AcceptKey $command = 'echo $HOME' $response = Invoke-SSHCommand -SSHSession $sshSession -Command $command $response.Output Remove-SSHSession -SSHSession $sshSession.SessionId
内容的提问来源于stack exchange,提问作者LadderLogic
相关产品推荐
相关产品推荐

