当我想连接到我的服务器时
ssh -a username@my-server.de -p 22
它给了我两条错误消息:
PTY allocation request failed on channel 0
shell request failed on channel 0
当我使用参数-T
时,第一条错误消息消失了。
但是如何修复第二个呢?
我无法连接。对于其他服务器,我可以毫无问题地连接。
我在MAC OS 10.9上
参数-v
向我显示了这个调试输出:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to xxx.your-server.de [188.40.3.15] port 22.
debug1: Connection established.
debug1: identity file /Users/xxx/.ssh/id_rsa type -1
debug1: identity file /Users/xxx/.ssh/id_rsa-cert type -1
debug1: identity file /Users/xxx/.ssh/id_dsa type -1
debug1: identity file /Users/xxx/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version mod_sftp/0.9.8
debug1: no match: mod_sftp/0.9.8
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 55:f5:ca:ca:01:45:0f:7b:71:0a:1f:ba:9e:25:17:fb
debug1: Host 'xxx.your-server.de' is known and matches the RSA host key.
debug1: Found key in /Users/xxx/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/xxx/.ssh/id_rsa
debug1: Trying private key: /Users/xxx/.ssh/id_dsa
debug1: Next authentication method: password
输入密码后我得到了这个
debug1: Authentication succeeded (password).
Authenticated to xxx.your-server.de ([xxx.xxx.3.15]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = de_DE.UTF-8
shell request failed on channel 0
答案 0 :(得分:18)
通道0上的PTY分配请求失败
系统上有256个伪终端限制。也许你有一个泄漏伪终端的应用程序。使用
lsof /dev/pts/*
查看哪些进程已打开伪终端
通道0上的shell请求失败
我收到此错误(没有PTY分配错误)。事实证明,我的一个应用程序(QtCreator 3.0。?)正在泄露Zombie进程。其他用户能够登录,因此我可能已经达到了我的每个用户进程配额(如果有这样的事情)。我已更新到QtCreator 3.3。到目前为止一切都很好。
答案 1 :(得分:15)
卸载并挂载/dev/pts
为我工作
umount /dev/pts
mount devpts /dev/pts -t devpts
参考:http://www.iitk.ac.in/LDP/LDP/lfs/5.0/html/chapter06/proc.html
答案 2 :(得分:5)
只需将这些行添加到/etc/mtab
和/etc/fstab
,然后重新启动系统。
none /dev/pts devpts defaults 0 0
答案 3 :(得分:5)
尝试通过ssh连接到我的服务器时遇到完全相同的错误。我可以看到你正在使用Hetzner提供的服务器在端口22上连接它:
debug1:连接到xxx.your-server.de [188.40.3.15]端口22。
来自Hetzner的官方维基/文档说:
服务器/计算机(控制台)的加密远程诊断协议。要使用的SSH端口是222。
所以你必须通过端口222连接:
ssh -p 222 username@my-server.de
答案 4 :(得分:2)
我解决了一个类似的问题,我们的一个用户只用于ssh端口转发,所以他不需要访问PTY,并且在.ssh / authorized_keys文件中禁止它:
no-pty ssh-rsa AAA...nUB9 someuser
因此,当您尝试登录此用户时,只有消息
PTY allocation request failed on channel 0
被退回了。因此,请检查用户的authorized_keys文件。
答案 5 :(得分:1)
从AWS控制台重启实例对我有用。有一项服务泄漏了lsof
帮助找到的文件连接。
答案 6 :(得分:1)
这是一个古老的问题,但是如果有人像我一样来到这里...
这可能是服务器中日期错误的结果。如果您使用的是嵌入式系统,则可能是原因...所以请检查日期:
$ date
答案 7 :(得分:1)
这正是我从提供的各种答案中获得帮助的原因。
答案 8 :(得分:0)
如果您已连接到 EC2 EC2 Serial Console
并尝试从本地计算机执行 SSH,则会出现此错误,因此关闭 EC2 串行控制台 并重新连接 SSH 即可解决.
答案 9 :(得分:0)
因为您已经找到了创建 PTY 的 -T 标志,所以我将只回复第二部分:
<块引用>shell 请求在通道 0 上失败
你应该传递一个命令:
ssh username@my-server.de -p 22 help
在阅读此处的手册后:https://www.jenkins.io/doc/book/managing/cli/,我发现没有命令它就无法工作并不是很清楚。但正如@U.V. 所说,ssh 接口不是控制台接口,而是一个连接实用程序。所以你需要传递一个命令...
如果来自“jenkins”团队的某个人通过了这篇文章,那么如果我们不通过任何命令,帮助就会出现:-)
答案 10 :(得分:0)
就我而言,SFTP服务器将拒绝您的SSH连接。
答案 11 :(得分:0)
尝试使用选项-NT
ssh -NT ...
答案 12 :(得分:0)
重新启动一个AWS实例对我来说可以解决以下错误:“ shell请求在通道0上失败”
答案 13 :(得分:0)
将本地用户的公共密钥添加到github后,我试图在ssh -t git@github.com
上使用sudo时,就会发生这种情况
要小心像我这样的Google快乐的人
答案 14 :(得分:0)
在尝试ssh
进入NetGear ReadyNAS设备时,如果人们发现自己正在阅读此质量检查,请确保在对话框中选中“仅rsync”复选框“ 取消”用于管理界面中的ssh服务。
答案 15 :(得分:0)
我也面临同样的问题。只需重新启动服务器即可解决此问题。
答案 16 :(得分:0)
我在使用git bash时遇到此错误。我能够通过为Windows重新安装git来解决此问题。 answer中的更多详细信息。
答案 17 :(得分:0)
启动虚拟机时,偶尔会看到这种情况。我们的自动化系统开始应用更新,因此根据时间可能会触发关键软件包的更新。
快照-如果在目标计算机上更新ssh或其他相关软件包,则可能会发生这种情况。
答案 18 :(得分:0)
刚发现,我的情况是什么问题(提供者策略): 最后,我在输出“ shell请求在通道0上失败”时遇到了同样的问题。
我必须使用主密码以及Web域名作为登录名。 (在德国 www.wunschname.de,其中,wunschname是您的网址。)
使用sftp用户名和相应密码的ssh登录失败。 (尽管scp和sftp可以与这些sftp用户一起使用!)
答案 19 :(得分:0)
重新安装/ dev / pts对我有用。如果您对受影响的计算机运行ssh,则可以通过ssh远程执行此操作。 ssh在运行类似这样的命令时不会请求tty,因此这将允许您远程重新安装/ dev / pts
ssh user @ host-'mount -o remount,rw / dev / pts'
答案 20 :(得分:0)
尝试一下:
vi /etc/security/limits.d/20-nproc.conf
* soft nproc 4096 # change to 65535
root soft nproc unlimited
答案 21 :(得分:0)
shell request failed on channel 0
意味着您没有外壳程序或远程命令访问权限,请在服务器上修复您的用户权限以具有外壳程序访问权限,或者如果您只想使用-N
和-T
选项进行隧道操作