この投稿に至るまでの経緯
- Visual Studio CodeでGithubにHTTPS接続していたがssh接続に切替
- 過去の記事を参照してPuttyでssh接続
- 後日、Gitlabでもssh接続を追加。Gitlabにgit clone時に途中パスワード聞かれた状態でフリーズした
- 複数ssh接続する際に問題が出た際にWin32-OpenSSHをsshで使うとそれぞれに接続できた
以下、備忘録として各種インストール・設定を記載
各種環境
- windows 10
- Visual Studio Code 1.20.1
Win32-OpenSSH v1.0.0.0-Beta- Git for Windows 2.16.2
各種インストール・設定
1. Git for Windows
インストール時の設定
2. Win32-OpenSSH
OpenSSH-Win64.zipをダウンロード解凍後、フォルダ名をOpenSSHとして「C:\」にコピー
3. 環境変数追加
「コントロールパネル」→「システム」→「システムの詳細設定」→「環境変数」選択システム環境変数の「Path」に「C:\OpenSSH」を追加システム環境変数に新規で変数名「GIT_SSH」、変数値「C:\OpenSSH\ssh.exe」を追加
※、2020年6月25日追記
OpenSSHはWindows10では「%SYSTEMROOT%\System32\OpenSSH」にあるため、Win32-OpenSSHの追加は不要となっています。
4. git config
powershell
※、名前とメールを設定
git config --global user.name "[your_name]"
git config --global user.email [your_mail_address]@[your_mail_domain]
5. ssh-keygen
powershell
cd ~/
cd .ssh
.sshがない場合は作成
※、各サービスで登録したメールを設定
ssh-keygen -t rsa -f id_rsa_for_github -b 4096 -C "[your_mail_address]@[your_mail_domain]"
ssh-keygen -t rsa -f id_rsa_for_gitlab -b 4096 -C "[your_mail_address]@[your_mail_domain]"
ssh-keygen -t rsa -f id_rsa_for_bitbucket -b 4096 -C "[your_mail_address]@[your_mail_domain]"
※、ここではパスワードを入れずにEnterのみ入力して終了
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
6. config追加
.sshに「config」ファイルを作成。以下の内容を設定
config
Host github.com
User git
HostName github.com
IdentityFile ~/.ssh/id_rsa_for_github
IdentitiesOnly yes
Host gitlab.com
User git
Hostname gitlab.com
IdentityFile ~/.ssh/id_rsa_for_gitlab
IdentitiesOnly yes
Host bitbucket.org
User git
Port 22
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa_for_bitbucket
IdentitiesOnly yes
7. ssh公開鍵の登録(Github)
powershell
cat id_rsa_for_github.pub | clip
上記コマンドで公開鍵コピー後、以下の公式の手順に従ってキーを設定
8. ssh公開鍵の登録(Gitlab)
powershell
cat id_rsa_for_gitlab.pub | clip
上記コマンドで公開鍵コピー後、以下の公式の手順に従ってキーを設定
9. ssh公開鍵の登録(Bitbucket)
powershell
cat id_rsa_for_bitbucket.pub | clip
上記コマンドで公開鍵コピー後、以下の公式の手順に従ってキーを設定
10. sshでの接続確認
powershell
ssh -T github.com
ssh -T gitlab.com
ssh -T bitbucket.org
まとめ
- Windows環境でgit使用時にssh接続できなかった場合はWin32-OpenSSHを使う
- GIT_SSHを環境変数で設定する
- .sshにconfigファイルのみで動くはずなのに、動かなかった原因は未調査