使い方

起動

Mac

Mac の場合は ssh-agent の起動は不要である。

Windows

Windows の場合は、

$ ssh-agent bash

または、

$ eval `ssh-agent -s`

または、

$ exec ssh-agent bash

で起動する。

秘密鍵の追加

秘密鍵を追加する。

$ ssh-add ~/.ssh/id_rsa

追加された秘密鍵を確認する。

$ ssh-add -l

登録された秘密鍵を消去する。

$ ssh-add -d ~/.ssh/id_rsa

登録された秘密鍵を全て消去する。

$ ssh-add -D

参考:

ssh-agent の使い方を整理する – Qiita

ssh-agent を使って公開鍵認証方式の SSH パスワード入力を省略する方法 | server-memo.net

ssh-agent の使い方 | ラボラジアン

SSH 接続時に ssh-agent を利用してパスフレーズの入力を省略する | メグリ株式会社

ssh-agent を使って SSH のパスフレーズを省略する方法 | 有限工房

ssh-agent の使い方/SSH でパスフレーズを省略する方法 | わくわくBank

SSH のパスフレーズ入力を省略する方法 | Inhale n’ Exhale

ssh-agent(1) | man ページ (nxmnpg.lemoda.net)

How to make Git not prompt for passphrase for SSH key on windows? – Super User

自動起動

参考:

Git Bash の起動時に ssh-agent を自動起動させる | nKB

Git Bash すると ssh-agent を自動で起動 | himadatanode’s blog

ssh-agent を自動起動する – Qiita

起動しているか判定する

参考:

ssh-agent 起動チェック | igumemo

プロセスを終了させる

eval `ssh-agent -s` コマンドで SSH Agent を起動した場合、シェル終了後にプロセスが残ったままになるので、シェル終了前に SSH Agent を終了させる。

$ ssh-agent -k

Bash 終了時に自動的に SSH Agent を終了させるには、.bash_logout ファイルに ssh-agent -k コマンドを追加しておく。

コード:

Kill all ssh-agents on Windows (versedi) – GitHub Gist

参考:

ssh-agent の注意点 | serenska’s diary

pkill でまとめてプロセスを削除 | orca8 の備忘録

How to kill ssh-agent properly – Stack Overflow

ソケットを使ってエージェントを再利用する

~/.bashrc に次の処理を追加する。

SSH_AGENT_FILE=$HOME/.ssh-agent
test -f $SSH_AGENT_FILE && source $SSH_AGENT_FILE
if ! ssh-add -l > /dev/null 2>&1; then
    ssh-agent -s > $SSH_AGENT_FILE
    source $SSH_AGENT_FILE
    ssh-add $HOME/.ssh/id_rsa
fiCode language: Bash (bash)

参考:

ssh config および ssh-agent の活用 | Qoosky

Git Bash すると ssh-agent を自動で起動 | himadatanode’s blog

SSH 接続時に ssh-agent を利用してパスフレーズの入力を省略する | メグリ株式会社

Start ssh-agent on login – Stack Overflow

GitHub で使う

参考:

Git Bash で GitHub に SSH 接続 – Qiita

新しい SSH キーを生成して ssh-agent に追加する | GitHub Docs [公式]

keychain

参考:

SSH のパスフレーズ入力を keychain で省略する – Qiita

WSL2 の Ubuntu で keychain 経由で ssh-agent を使う | ロボ太

WSL2 の Ubuntu に keychain を設定した | akichan

Windows で使う

参考:

Windows 10 の ssh-agent をコマンドプロンプト/WSL/Git Bash で使ってみた – Qiita

Windows と WSL2 で同じ SSH key を使用する方法 | KOMARI

混沌を極める Windows の ssh-agent 事情 – Qiita

Setting up SSH-Agent in Windows for Passwordless Git Authentication | InterWorks

How to maintain ssh-agent login session with Windows 10’s new OpenSSH and PowerShell – Super User

Git for Windows

ソケットを環境変数として永続化するには、~/.bashrc に次の処理を追加する。

SSH_AGENT_FILE=$HOME/.ssh-agent
test -f $SSH_AGENT_FILE && source $SSH_AGENT_FILE
if ! ssh-add -l > /dev/null 2>&1; then
    ssh-agent -s > $SSH_AGENT_FILE
    source $SSH_AGENT_FILE
    ssh-add $HOME/.ssh/id_rsa
    if [ -n "$SSH_AUTH_SOCK" ]; then
        setx "SSH_AUTH_SOCK" "$SSH_AUTH_SOCK" > /dev/null
    fi
    if [ -n "$SSH_AGENT_PID" ]; then
        setx "SSH_AGENT_PID" "$SSH_AGENT_PID" > /dev/null
    fi
fi
Code language: Bash (bash)

Git for Windows に付属の SSH を Git で使用する場合は、GIT_SSH 環境変数を設定する。

> setx GIT_SSH "C:\Program Files\Git\usr\bin\ssh.exe"

コード:

ssh-env.bat (mattn) – GitHub Gist

ssh-env.bat (ttymrz) – GitHub Gist

win-ssh-agent.sh (yaegashi) – GitHub Gist

参考:

Windows でも ssh-agent と ssh-add を使ってパスフレーズ入力を省略する | Big Sky

win-ssh-agent.sh | ほげめも

Tips

SSH 秘密鍵の SSH-Agent をつかった管理ベストプラクティスを考えてみた | 50 ぱーせんとおふ

Omni SSH Agent

リポジトリ:

masahide/OmniSSHAgent: Integrated ssh-agent for Windows – GitHub

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA