今天,我已经开始在我的Ubuntu 10.04服务器上设置一个gitolite服务器,我需要用ssh-keygen生成一个公钥/私钥对。
到目前为止没有问题。 我已经在我的Ubuntu 10.10客户端上生成了两个文件(id_rsa&id_rsa.pub),然后将id_rsa.pub密钥传输(复制)到服务器(在/ tmp /),以安装gitolite服务器。
但接下来,当我想通过SSH连接到客户端的服务器,我收到一个错误,看起来像这样:
PTY allocation request failed on channel 0
search谷歌,我发现的答案是关系到/ etc / fstab。 对我而言,这种做法是毫无意义的。 然后我得到了从我的客户端删除〜/ .ssh / id_rsa和id_rsa.pub的想法,我又能够build立一个SSH连接。
有人解释为什么发生? 我觉得我不明白authentication密钥的一些东西。
Gitolite设置authorized_keys文件的方式,你不会有shell访问服务器。 有几种方法可以解决这个问题:
基本上,所发生的是devise。 Gitolite不允许任何用户访问服务器的shell,所以(有点令人困惑的)错误信息只是表明它正常工作。
该消息的一个可能的原因是服务器已经超出了可用terminal的数量,因为太多的用户一次连接。 这将是一个短暂的失败,因为连接和断开连接的用户会使ptys的数量饱和和饱和。
另一个可能的原因,可能是适用于你的一个原因是,密钥可能被限制为禁止terminal分配。 这在大多数情况下并不是非常有用,但对于只允许存储而不是一般使用的服务器来说是有意义的,例如git存储。 如果密钥有no-pty标志(检查~/.ssh/authorized_keys的相应行),将无法使用terminallogin。
如果你是一个git服务器上的pipe理员,你可能想要一个没有限制的密钥。 只需运行没有-O和ssh-copy-id ssh-keygen来安装没有限制的密钥。 对于在服务器上只运行git的普通用户使用受限密钥。
这个错误看起来不是一个关键问题,其他的东西很可能在你的ssh服务器configuration中被破坏。 你有没有在服务器上重新启动sshd? 你能够从控制台login吗? 如何从另一台机器sshing?