GitHubでSSHを使ってソースのクローンやコミット、マージなどを実行したい場合、以前はGitHubにSSHの公開鍵を登録して次のように設定して最後にssh -T git@github.com
とか実行したと思います。「GitHub ssh接続」などで検索すると同じような設定を行なっているブログ記事がたくさん見つかります。
$ ssh-keygen ... $ vi ~/.ssh/config Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa.pub
本来であれば Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.
みたいなメッセージが出力されていたはずなのですが、いくら待ってもそういったメッセージは出ずに、最終的にはSSH接続がタイムアウトになってしまいます。
-v
オプションをつけて実行すると、22番ポートにアクセスしようとして止まっているような感じでした。いつの間にか22番ポートはブロックするようにしたのでしょうか?
% ssh -v -T git@github.com OpenSSH_9.0p1, LibreSSL 3.3.6 debug1: Reading configuration data /Users/ytooyama/.ssh/config debug1: /Users/ytooyama/.ssh/config line 15: Applying options for * debug1: /Users/ytooyama/.ssh/config line 74: Applying options for github.com debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files debug1: /etc/ssh/ssh_config line 54: Applying options for * debug1: /etc/ssh/ssh_config line 58: Applying options for * debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling debug1: Connecting to github.com port 22.
これについて調べたところ、次のようなフォーラムの投稿がヒットしました。
環境固有でgithub.com
にSSH接続ができなくなる場合があるようです。もしかすると今回の問題もそれなのかもしれません。
GitHub公式の情報 をみて、~/.ssh/configを書き換えることにしました。
Host github.com Hostname ssh.github.com Port 443 User git IdentityFile ~/.ssh/id_rsa.pub
設定を書き換えたところ、今度はうまくいきました。
% ssh -T git@github.com Hi ytooyama! You've successfully authenticated, but GitHub does not provide shell access.
ソースのクローンとかも問題ないです。
% git clone git@github.com:ytooyama/wasm-python-demo.git Cloning into 'wasm-python-demo'... remote: Enumerating objects: 7, done. remote: Counting objects: 100% (7/7), done. remote: Compressing objects: 100% (7/7), done. remote: Total 7 (delta 1), reused 6 (delta 0), pack-reused 0 Receiving objects: 100% (7/7), done. Resolving deltas: 100% (1/1), done.
GitHub CLI を入れると、公開鍵をコマンドでGitHubに登録できるので便利です。 また GitHub Mobile をタブレットやスマホに入れておくと、ユーザーの2FA認証をGitHub Mobileで応答できるので、これも便利ですね。
gh ssh-key add ~/.ssh/id_ed25519.pub