Windows10で 認証プロキシ環境下で GitHubに 443番ポートで SSH接続する方法
客先のネットワークポリシーが厳しくなって、認証プロキシを通さないとインターネット接続できなくなりました。
その環境下でGitHubにSSH接続する方法が分からなくて調べたので、忘れないようにメモっておきます。
(なんでSSH接続したいかというと、HTTPS接続で試したけどGitHubの認証がうまくいかなかったせいです。
「ユーザ名とパスワードを2回ずつ訊かれて、正しいの入れてるのに認証失敗する」って感じでした。理由は調べてないので分かりません)
環境
前提知識
GitHubのSSHは443番ポートも使えるらしいです
(https://help.github.com/en/articles/using-ssh-over-the-https-port)
やったこと
.ssh/configの設定
.ssh/config をこんな感じにします。
Host github.com User git Hostname ssh.github.com Port 443 IdentityFile ~/.ssh/id_rsa ProxyCommand connect.exe -H {PROXY_ADDRESS}:{PROXY_PORT} %h %p
ProxyCommand
に設定してる connect.exe
は、 C:\Program Files\Git\mingw64\bin
にありました。
Git for Windows インストールすると勝手に入るみたいです。
環境変数の設定
ユーザ環境変数に以下を設定します。
変数名 | 値 |
---|---|
HTTP_PROXY_USER | {プロキシのユーザID} |
HTTP_PROXY_PASSWORD | {プロキシのパスワード} |
動作確認
以下コマンドで、GitHubに接続してみます。
$ ssh -T github.com
こんな感じのメッセージが返ってきたら成功です
Hi {GITHUB_USER_NAME}! You've successfully authenticated, but GitHub does not provide shell access.
おまけ (検索にヒットさせる用)
環境変数にID/PWを設定しないでGitHubにSSH接続を試みた場合、こういうエラーが出ました。
(なんで文字化けしてんのかは分かりません。。なんか日本語名のパスなんだろうけど。。)
$ ssh -T github.com 'C:\Program' ▒́A▒▒▒▒▒R▒}▒▒▒h▒܂▒▒͊O▒▒▒R▒}▒▒▒h▒A ▒▒▒▒\▒ȃv▒▒▒O▒▒▒▒▒܂▒▒̓o▒b▒` ▒t▒@▒C▒▒▒Ƃ▒▒ĔF▒▒▒▒▒▒Ă▒▒܂▒▒▒B FATAL: Cannot decide password for proxy authentication.ssh_exchange_identification: Connection closed by remote host