![安裝Gitolite後無法登入ssh? PTY 分配請求在頻道 0 上失敗](https://rvso.com/image/1316779/%E5%AE%89%E8%A3%9DGitolite%E5%BE%8C%E7%84%A1%E6%B3%95%E7%99%BB%E5%85%A5ssh%EF%BC%9F%20PTY%20%E5%88%86%E9%85%8D%E8%AB%8B%E6%B1%82%E5%9C%A8%E9%A0%BB%E9%81%93%200%20%E4%B8%8A%E5%A4%B1%E6%95%97.png)
當我按照以下說明將 Gitolite 安裝到 Synology DiskStation NAS 後: http://www.bluevariant.com/2012/05/compressive-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 故障排除「。
您需要透過除 之外的其他方式存取您的伺服器,並刪除以in ssh
開頭的行。command
~root/.ssh/authorized_keys
你知道我如何使用 Telnet 重做 gitolite 安裝流程嗎?
以 root 身分登入後:
- 刪除檔案中以 command 開頭的行
~root/.ssh/authorized_keys
。 - 確保您的根公鑰已在同一文件中註冊(因此
command=
前面沒有任何“”。
這將確保透過 ss 進行 root 存取。
然後重做安裝,但要先sudo git
安裝。
進行安裝時您必須是「git」。
您必須先在客戶端產生一個git
ssh 私鑰和一個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 編輯 SSHknown_hosts 檔案的方式,您將無法使用私鑰進行身份驗證,但是如果您使用上面列出的標誌指定首選身份驗證,則不會以任何方式查閱該檔案。