Help us understand the problem. What is going on with this article?

22番ポートが使えなくても、SSHでGitしたい!

More than 3 years have passed since last update.

SSHでGit使ってると、ファイアーウォールやプロキシ環境でいらいらしますよね。
でも主要なサイト(GitHub,GitLab,Bitbucket)なら実は443ポートでSSHできちゃったりするんです。
でも、調べても正しい情報がなかなか出てこなかったりするので自分へのメモ用に残して残しておくことにしました。

使い方は簡単!以下のコンフィグを自分仕様に合わせて書くだけ!
(hoge.proxy.jpをプロキシサーバーのURLにして1080のとこはポート番号を入れてください)

Windowsの場合

Git Bash使っている場合(CMDは多分ダメ)

connectが入っているのでこれを使います。他の環境は調査してませんが似たような感じでいけると思います。

~/.ssh/config
Host github.com
    User git
    Hostname ssh.github.com
    IdentityFile ~/.ssh/id_rsa
    Port 443
    ProxyCommand connect.exe -H hoge.proxy.jp:1080 %h %p

Host bitbucket.org
    User git
    IdentityFile ~/.ssh/id_rsa
    HostName altssh.bitbucket.org
    Port 443
    ProxyCommand connect.exe -H hoge.proxy.jp:1080 %h %p

Host gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa
    HostName altssh.gitlab.com
    Port 443
    ProxyCommand connect.exe -H hoge.proxy.jp:1080 %h %p

macOS(OS X)/Linuxの場合

ncコマンドを使ってやります。ない場合はインストールしてください(方法は省略)

~/.ssh/config
Host github.com
    User git
    Hostname ssh.github.com
    IdentityFile ~/.ssh/id_rsa
    Port 443
    ProxyCommand nc -X connect -x hoge.proxy.jp:1080 %h %p

Host bitbucket.org
    User git
    IdentityFile ~/.ssh/id_rsa
    HostName altssh.bitbucket.org
    Port 443
    ProxyCommand nc -X connect -x hoge.proxy.jp:1080 %h %p

Host gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa
    HostName altssh.gitlab.com
    Port 443
    ProxyCommand nc -X connect -x hoge.proxy.jp:1080 %h %p

最後に

筆者はプロキシ使う環境と使わない環境の2つの環境でGit使っているので環境のたびにコメントをつけたり外したりするのがめんどくさいです。なにかいい方法はないでしょうか?(ホスト名proxy.github.comみたいな感じでリポジトリ切り替えとかすればいい?)

306_san
色々なものをかじっただけの所謂にかわ系エンジニア。IoTからWebからHololensが少しできる広く浅くやってくタイプのエンジニア
cirkit
地域活性化を目的に学生と地域をつなぐサービスを開発・運営しています。
http://www.cirkit.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away