はじめに
GitHubへの接続にて、SSHポート(22)が使用できない場合に、HTTPS(443)ポートを使いつつ、SSHでの接続をしたいという要件があった。
これを解決したいので調査してみる。
環境
Windows 10 Professional
WSL2 (Ubuntu22.04 LTS)
準備
鍵の作成
まずは、ssh
の接続をできるように、SSHの鍵ファイルを作成する。
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/[ユーザ名]/.ssh/id_rsa):
Created directory '/home/[ユーザ名]/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/[ユーザ名]/.ssh/id_rsa
Your public key has been saved in /home/[ユーザ名]/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:UB3H2t4F5cynGIKlnnUD7qPzQgAoaFQZSsg8lHpSLt4 [ユーザ名]@[PC名]
The key's randomart image is:
+---[RSA 3072]----+
|B+o+o ..+o. ..|
|=*+.. . =.o. .+ |
|o=. .. o +o+ .=|
|+ o .o +.o.+ .o|
|.+. .S o..... |
| . E .. .. . |
| .o |
| .o |
| .. |
+----[SHA256]-----+
これで、 /home/[ユーザ名]/.ssh/id_rsa
に鍵ファイルが作成される。
GitHubへの接続を試す
SSHでの接続テスト
ssh -T git@github.com
git@github.com: Permission denied (publickey).
どうやら鍵ファイルの権限になにか問題があるのか? 調査してみる。
下記に問題があったようだ
GitHub
に公開鍵を登録し忘れていた。
というわけなので、公開鍵(id_rsa.pub
)を GitHubのSSH and GPG keysに登録する。SSH keys
の Authentication Kyes
に登録をした。
再度 SSHでの接続テスト
$ ssh -T git@github.com
Hi katsuobushiFPGA! You've successfully authenticated, but GitHub does not provide shell access.
うまく行ったようだ。
HTTPSのポートでSSHの接続
ssh -T -p 443 git@ssh.github.com
$ ssh -T -p 443 git@ssh.github.com
The authenticity of host '[ssh.github.com]:443 ([20.27.177.118]:443)' can't be established.
ED25519 key fingerprint is [フィンガープリント]
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:1: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[ssh.github.com]:443' (ED25519) to the list of known hosts.
Hi katsuobushiFPGA! You've successfully authenticated, but GitHub does not provide shell access.
おぉ~いけますね。
参考
- HTTPS ポートを介して SSH を使用する | GitHub Docs
https://docs.github.com/ja/authentication/troubleshooting-ssh/using-ssh-over-the-https-port - Troubleshooting SSH | GutHub Docs
https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickey?platform=linux
おわりに
22番ポートがアウトバウンドで許可されていない場合は、HTTPS(443)でのポートでも接続ができるということを頭に入れておきたい。