LoginSignup
0
0

Ubuntuの特定バージョンでgitlab.comにssh接続できない時にすること

Last updated at Posted at 2024-04-12

現象

私の PC (Ubuntu) で何故か GitLab だけ SSH (ssh -T git@gitlab.com) が、

Connection to gitlab.com closed by remote host.

で接続に失敗する現象が起きていました。

実のところ、以前からこの問題が発生し続けていて気になっていたのですが、主に GitHub を使っていて GitLab を使うことはほぼ無いため暫く問題を放置していました。しかし、仕事で GitLab を使わざるを得なくなったので、重い腰を上げて調査してみました。

まずは、GitLab の SSH キー登録が expired していないかといった初歩的な確認をしたのですが特に問題なく、念の為 SSH キーを作り直して再登録してみたのですが、それでも GitHub への接続は成功しますが、GitLab だけが何故か失敗する状態でした。

GitLab は SSH キー登録時にデフォルトで有効期限が設定しているので、何も考えずにキー登録すると expire してしまいがちです。

どうやらキーの問題ではなさそうなので、クライアント側の通信設定の問題だろうと考えて色々と調べてみました。

なお、Ubuntu のバージョン(uname -v)は次の通りです。

#25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2

対策方法

ググって調べた ssh git がタイムアウトする問題の対策方法を片っ端から試してみた結果、~/.ssh/config で gitlab.com の SSH 接続設定に IPQoS 0 を追加することで正常に接続できるようになりました。

~/.ssh/config
Host github
    HostName github.com
    IdentityFile ~/.ssh/id_rsa
    User git
    IdentitiesOnly yes
Host gitlab.com
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa
    User git
    IdentitiesOnly yes
    IPQoS 0

原因

以下の記事を参考にしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0