安装Gitolite后无法登录ssh?0通道上的PTY分配请求失败

安装Gitolite后无法登录ssh?0通道上的PTY分配请求失败

按照以下说明将 Gitolite 安装到我的 Synology DiskStation NAS 上后: http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation/

我意识到我成功安装了 gitolite,但不知何故我无法使用用户“git”运行安装 - 但我可以以“root”身份运行

安装后,我退出了。但现在每次我再次尝试通过 ssh 登录时:$ ssh root@iptonas

我收到此错误:通道 0 上的 PTY 分配请求失败

我读到过 gitolite 现在禁用了 ssh 登录?我还能怎样重新进入 shell..?

答案1

error: PTY allocation request failed on channel 0

完全正常、符合预期且不阻塞(即 ssh 操作将会继续)

但是,您以 root 身份进行了安装,这很糟糕,尤其是当您考虑到ssh Gitolite 页面

如果你正在安装 gitolite,那么无论你是否喜欢,你都是“系统管理员”
如果您使用的是默认 ssh 模式(即非 http 模式),则 ssh 是必备技能。请花时间学习至少足够的知识,以便实现无密码访问。

理解 Gitolite 的关键是它的使用强制命令,以拒绝交互式 shell 并拦截任何命令(包括 git 命令),从而允许它强制对 Git 存储库进行访问控制。

这意味着您的~root/.ssh/authorized_keys文件包含以下行:

command="/devit_home/users/vobadm/gitpoc/ce7/gitolite/bin/gitolite-shell gitoliteadm",no-port-forwarding,no-X11-for        warding,no-agent-forwarding,no-pty ssh-rsa AAAAB3N

no-port-forwarding导致该警告消息“ PTY allocation request failed on channel 0”的原因。但这并不妨碍 Gitolite 操作正常运行。

看 ”gitolite 如何使用所有这些 ssh 魔法?“。

对于 ssh 问题,请查看“SSH 故障排除“。
您需要通过其他方式访问您的服务器,然后删除以开头 ssh的行。command~root/.ssh/authorized_keys


您知道我如何使用 Telnet 重新执行 gitolite 安装过程吗?

以 root 身份登录后:

  • 删除文件中以命令开头的行~root/.ssh/authorized_keys
  • 确保您的根公钥在同一个文件中注册(因此command=前面没有任何“ ”。

这将确保通过 ss 进行 root 访问。

然后重新安装,但首先sudo git
在进行安装时您必须是“git”。

您必须首先在客户端生成一个git私钥和一个git.pub公钥。
复制服务器上的公钥:您将把该公钥传递给命令gitolite install

并作为瑞安提及他的回答,用途

DiskStation> /volume1/homes/git/gitolite/install -ln

(为了将安装链接到~git/bin而不是“系统路径根保护”/bin目录)。

答案2

我同意 Gitolite 可能不应该以 root 身份运行。我也犯了这个错误。只是添加一些额外的信息以防有帮助。

通过在 SSH 命令中添加以下标志,我仍然能够以 root 身份通过 SSH 连接到目标机器:

PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no

当然,这是假设您的 root 帐户有与之关联的密码。由于 Gitosis 编辑 SSH known_hosts 文件的方式,您将无法使用私钥进行身份验证,但是如果您使用上面列出的标志指定首选身份验证,则不会以任何方式查阅该文件。

相关内容