GitHub
SSH
windows7
proxy

Windows7からGitHubへSSH接続する手順(プロキシ環境有)

More than 1 year has passed since last update.

やりたいこと

  • Windows7 から GitHub へSSH接続する。

前提環境

  • プロキシ環境有: $proxyserver:$port
  • OS: Microsoft Windows 7 Professional 6.1.7601 Service Pack 1 (SP1) ビルド 7601 x64
  • GitHub for Windows インストール済み

手順

クライアント(Windows7)の公開鍵(id_rsa.pub)を生成

Git Bash(C:\Program Files\Git\git-bash.exe)で下記のコマンドを実行します。

変数 説明
mail@example.com 使用する GitHub アカウントのメールアドレス
$user_profile ユーザープロファイル
$fingerprint フィンガープリント
git-bash.exe
ssh-keygen -t rsa -C "mail@example.com" # <= 実行するコマンド
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/$user_profile/.ssh/id_rsa): # <= 空Enter
Enter passphrase (empty for no passphrase): # <= 公開鍵のパスフレーズを入力してEnter
Enter same passphrase again: # <= 公開鍵のパスフレーズを入力してEnter
Your identification has been saved in /c/Users/$user_profile/.ssh/id_rsa.
Your public key has been saved in /c/Users/$user_profile/.ssh/id_rsa.pub. # <= 生成された公開鍵
The key fingerprint is:
SHA256:$fingerprint mail@example.com
The key's randomart image is:
+---[RSA 2048]----+
|        .. .o=== |
|       ..   =.o +|
|        .. = B  o|
|       o  o O + .|
|      o S  * = .o|
|       o    = o.=|
|      .    . + +=|
|            = ++=|
|           . ..*E|
+----[SHA256]-----+

公開鍵(id_rsa.pub)をGitHubへ登録

  1. GitHub にログイン
  2. SSHキーの設定画面(SSH Keys)を開く。
  3. [New SSH Key]ボタンを選択
  4. Title: 任意 (例: homepc1)
  5. Key: 先ほど生成した公開鍵(c:\Users\\$user_profile\.ssh\id_rsa.pub) をテキストエディタで開きコピー&ペースト
  6. [Add SSH Key]ボタンを選択

c:\Users\$user_profile\.ssh\config の設定

  1. c:\Users\\$user_profile\.ssh\config を開く
  2. 下記のように設定する
変数 説明
$user_profile ユーザープロファイル
$proxyserver プロキシサーバー
$port ポート
config
Host github.com
  User git
  Hostname ssh.github.com
  Port 443
  IdentityFile "c:\Users\$user_profile\.ssh\id_rsa"
  ProxyCommand connect.exe -H $proxyserver:$port %h %p

Port: 22 ではなく 443
IdentityFile: フルパス。Windowsの場合はパスにスペースが含まれる場合があるのでダブルコーテーション付き
ProxyCommand: プロキシ環境では設定が必要

c:\Users\$user_profile\.ssh\config にシンボリックリンクを貼る

コマンドプロンプト(cmd)で下記のコマンドを実行します。

  • $user_profile: ユーザープロファイル
cmd.exe
mklink "C:\Program Files\Git\etc\ssh\ssh_config" "C:\Users\$user_profile\.ssh\config" :: <= 実行するコマンド
C:\Program Files\Git\etc\ssh\ssh_config <<===>> C:\Users\$user_profile\.ssh\config のシン
ボリック リンクが作成されました

ssh_config が既に存在している場合はリネームしてください。(例: ssh_config.org)

sshコマンドでGitHubへ接続確認

Git Bash(C:\Program Files\Git\git-bash.exe)で下記のコマンドを実行します。

変数 説明
$id GitHub id
$user_profile ユーザープロファイル
git-bash.exe
ssh -T git@github.com # <= 実行するコマンド
Enter passphrase for key 'C:\Users\$user_profile\.ssh\id_rsa': # <= 公開鍵のパスフレーズを入力してEnter
Hi $id! You've successfully authenticated, but GitHub does not provide shell access.

接続NGの場合は ssh -vT git@github.com でデバッグ。

完了

参考文献