質問: 初めてgithubに接続できません gitを使用するのはこれが初めてで、ボックスに設定しようとしています。 githubwebインターフェイスのプロファイルにキーを追加しました。接続しようとすると...:max@linux-vwzy:~> ssh git@github.com the authenticity of host 'github.com (207.97.227.239)' can't be established. rsa key fingerprint is xx are you sure you want to continue connecting (yes/no)? yes warning: permanently added 'github.com,207.97.227.239' (rsa) to the list of known hosts. pty allocation request failed on channel 0 max@linux-vwzy:~> ssh-add ~/.ssh/id_rsa identity added: /home/max/.ssh/id_rsa (/home/max/.ssh/id_rsa) max@linux-vwzy:~> ssh git@github.com pty allocation request failed on channel 0 なんらかのウェルカムメッセージが届くはずですが、そうではありません。
回答: 通常のターミナル環境でssh git@github.comを実行すると、sshクライアント(ローカルマシン上のsshプロセス)が疑似ターミナルを要求します(pty)サーバーから。githubは常にptyの割り当てを拒否してきました。古いバージョン(5.6より前)のopensshsshは、サーバーがpty割り当て要求を拒否した場合、no-ptyモードに「フォールバック」します。opensshのsshの新しいバージョン(5.6から5.8)は、サーバーがpty割り当て要求を拒否すると中止します。opensshsshの最新バージョン(5.9以降)は、pty割り当てが自動的に行われた場合、前者のアクション(続行)を実行し、後者のアクション(中止)ptyの明示的な要求があった場合(-tが指定されているかrequestttyがyes/forceに等しい)。-tオプションを使用して、ssh(古いまたは新しい)にpty割り当ての要求を回避するように指示できます。ssh -t git@github.com 次に、githubメッセージが表示されます。 こんにちは<ユーザー名>!認証に成功しましたが、githubはシェルアクセスを提供していません。 openssh5.6リリース発表 から: pty割り当て要求が失敗したときにチャネルを強制終了します。サーバーがpty割り当てを拒否した場合のスタッククライアントを修正しました(bz#1698) bz#1698は 「portableopenssh」bugzillaに記録されたレポート への参照のようです。 openssh clientloop.c rev 1.234 のチェックインメッセージから: tty割り当てが失敗したときの動作を改善します。requesttty= autoモード(デフォルト)の場合、tty割り当てエラーを致命的なものとして扱わず、ローカルttyをクックモードに復元して続行します。これは、ttyを割り当てないデバイスではより適切です。 requestttyが「yes」または「force」に設定されている場合、ttyの割り当てに失敗すると致命的です。