🔐
WindowsでGitHubにSSH接続する最小の手順2021年版
WSL (Windows Subsystem for Linux)でもPowerShellでもGitHubにSSH接続できるようにして、パスワードレスに接続したかったが、微妙に古い情報しかなかったので。
前提
- GitHubアカウントを持っている
- Git for windowsインストール済み
- Windows 10 1803+ (OpenSSHがインストールされているバージョン)
SSH接続の設定手順
PowerShell
cd ~
ssh-keygen -t ed25519 -f .ssh/github
echo "
Host github
HostName github.com
IdentityFile ~/.ssh/github
User git
" | Out-File -Append -NoNewline -Encoding ascii .ssh/config
cat .ssh/github.pub | clip
これをPowerShellで実行すると、途中でSSH鍵ファイルのパスフレーズを聞かれる。
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): ←パスフレーズの入力
Enter same passphrase again: ←パスフレーズの再入力
(略)
入力してもいいし、Enterでスキップしてもよい。
実行後、SSH鍵情報がクリップボードに入っているので、それをAdd new SSH keysに登録する。
確認
ssh -T github
と実行して
Hi {GitHubユーザ名}! You've successfully authenticated, but GitHub does not provide shell access.
のように表示されれればSSHの設定としてはOK。
説明
- OpenSSHのユーザ設定ディレクトリ(
%USERPROFILE%\.ssh\
)にgithub(秘密鍵)と github.pub(公開鍵)を作成する。 - 公開鍵をGitHubに登録する。
やっていることはこれだけ。
自動的にSSH接続になるようにするには
もし既存のクローンが手元にあってリモートURLがhttps
になっている場合、git remote set-url github:{パス}
でURLを書き換えればSSH接続となるが、自動的にSSH接続に置き換えることもできる。
以下を実行すると全てのGitHubリポジトリへの接続がSSHとなる。
git config --global url.github:.insteadOf https://github.com/
WSLでも同じ設定を使うようにするには
Gitの設定はWindows側と完全に同じ設定を使うようにするのが一番簡単。
bash
cd ~
ln -s /mnt/c/Users/{ユーザ名}/.gitconfig
SSHの設定は権限の兼ね合いでシンボリックリンクによる共有はできないので、単にコピーする。
bash
cd /mnt/c/Users/{ユーザ名}/.ssh
cp github{,.pub} ~/.ssh
chmod 400 ~/.ssh/github
chmod 644 ~/.ssh/github.pub
echo '
Host github
HostName github.com
IdentityFile ~/.ssh/github
User git
' >> ~/.ssh/config
Discussion