Windows SSH-related

Contains information related to the Windows

Windows環境 SSH関連

Win10でssh-addがError connecting to agent: No such file or directory

サービスでssh-agentが無効になっているようで、PowerShellを管理者権限で開き、以下を実行

Set-Service -Name ssh-agent -StartupType Manual
Start-Service ssh-agent

SSH認証の公開鍵と秘密鍵を作成

SSH Keyを作成するコマンド

cd "自分のユーザフォルダ"\.ssh
ssh-keygen -t rsa -C アドレス@example.com

Generating public/private rsa key pair.
Enter file in which to save the key (/home/.ssh/id_rsa):    ← なにも入力せずに[Enter]
Enter passphrase (empty for no passphrase):    ← 好きなパスワードを入力
Enter same passphrase again:        ← 確認のためにもう一度入力
Your identification has been saved in /home/.ssh/id_rsa.
Your public key has been saved in /home/.ssh/id_rsa.pub.
The key fingerprint is:
e8:ae:60:8f:38:c2:98:1d:6d:84:60:8c:9e:dd:47:81 foo@hoge.com

鍵の生成が完了したら2つのファイルが生成

id_rsa: 秘密鍵、他人には見られないようにする
id_rsa.pub: 公開鍵、Bitbucket/GitHub/GitLabに渡す

クライアント側へのSSHキーの設定

.ssh/config .ssh/configのファイル以下を追加

Host gitlab.example.com
  User git
  Port 指定のポート番号
  HostName gitlab.example.com
  TCPKeepAlive yes
  identitiesonly yes
  identityFile ~/.ssh/id_rsa  →key(id_rsa)秘密鍵までのパスを記述

GitのSSH鍵認証で毎回パスワードを要求されないようにする

実行時の結果

git pull
Enter passphrase for key '/Users/user_name/.ssh/id_rsa':

解決方法

// SSH鍵をssh-agentに登録
ssh-add /Users/user_name/.ssh/id_rsa

// 上記パス(~/.ssh_id_rsa)の場合、下記でも登録可能
ssh-add -K

// 登録されていることを確認
ssh-add -l

も参照してください