やりたいこと
- 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へ登録
- GitHub にログイン
- SSHキーの設定画面(SSH Keys)を開く。
- [New SSH Key]ボタンを選択
- Title: 任意 (例: homepc1)
- Key: 先ほど生成した公開鍵(c:\Users\$user_profile\.ssh\id_rsa.pub) をテキストエディタで開きコピー&ペースト
- [Add SSH Key]ボタンを選択
c:\Users$user_profile\.ssh\config の設定
- c:\Users\$user_profile\.ssh\config を開く
- 下記のように設定する
変数 | 説明 |
---|---|
$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
でデバッグ。