LoginSignup
2
1

【Windows向け】GitHubでSSH接続時にパスフレーズを要求されないように設定

Last updated at Posted at 2023-09-29

環境

Windows10 Pro
git 2.39.1 (scoopでインストール)

参考記事

はじめに

GitHubのSSH接続にて、passphraseを設定するとコミットやプッシュ時に毎回passphraseを入力しなければならなかったため、その解決方法を備忘録としてここに記します

はじめに

GitでSSH認証をしている前提で話すため、まだSSH認証をしていない場合は、以下の記事を参照して、認証を済ませてから読み進めてください。

問題

ssh接続によるGitを使ったコミットやプッシュを実施した際にpassphraseを入力しなければならない。

> git push origin name_of_branch
Enter passphrase for key '/Users/[user_name]/.ssh/id_ed25519':

毎回要求されるのはしんどいので、要求されないようにする

Gitコマンドに秘密鍵を設定

gitコマンドが発行される際に、「とあるgitのリポジトリ(ホスト)と通信する際にはこの鍵を使ってね」と設定する場所がC:\Users\user/.ssh/configファイル。このconfigファイルに、以下のように記載して保存する

  • Host = 鍵を使い分ける単位を指定するためのもの。区別できればなんでもいい。
    • HostName = GitHubのホスト名もしくはIPアドレスなので「github.com」で良い
    • IdentityFile = 当該ホストへの接続に使用したい秘密鍵のフルパス
    • User = 「git」で良い
      詳しくは次を参照すると良い「https://qiita.com/miriwo/items/976d21e9a42fd3b01d08」
Host github
  HostName github.com
  IdentityFile C:\Users\user\.ssh\id_ed25519
  User git

SSHサービスが動いていない

  • 毎回passphraseを要求される原因はWindowsのssh-agentが動いていなかったことだったが、ssh-add -lコマンドで以下のコマンドでssh-agentが動いているか確認
ssh-add -l
Could not open a connection to your authentication agent.

OpenSSHサービスの起動

  • 「Win + Q」で、サービスと打ち込んで実行
    image.png
    image.png

  • OpenSSH Authentication Agentをダブルクリックし、スタートアップの種類を「自動」を選択し、「適用」をクリック
    image.png

  • 緑の三角ボタンをクリックしてサービスを開始
    image.png

秘密鍵の登録

  • ssh-add sshの秘密鍵ファイルのパスを実行
ssh-add .ssh/id_ed25519

image.png

Gitがssh-agentを利用するように設定

  • 以下のコマンドを実行して、Gitの設定を、WindowsのOpenSSHを見に行くように設定。
    この設定ができてないと、先ほど設定したはずのパスフレーズを聞かれたり、vscodeからpushしようとしたときに、 C:\Users\user/.ssh/config を見に行ってくれなかったりする
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

Git で push

  • pushを実行すると、passphraseを求められることはなくなりました。
    image.png
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1