はじめに
GitでSSH経由なのにパスワードが聞かれる場合、ssh-agentの話が出てますが、それについて詳細に掘り下げた記事になります。
これをするくらいなら、HTTPSで接続してキャッシュしてもいい気もします。
やり方、使い方
# sshエージェントを起動する(子プロセス立ち上げ) ssh-agent bash # こちらでも可(現在のシェルで実行させる) eval `ssh-agent` # ssh-agentに鍵を登録 ssh-add [鍵のパス] # ssh-agent をkillする場合は… ssh-agent -k
ssh-add
以降は、この鍵を使用するSSH接続について、パスワードを聞かれることはなくなります。
ssh-agent について
ssh-agent とは
マニュアルを見るのが一番ですね。
man ssh-agent
日本語訳はこちら。
ssh-agent
はOpenSSHの認証エージェントです。
ssh-agent is a program to hold private keys used for public key authentication. Through use of environment variables the agent can be located and automatically used for authentication when logging in to other machines using ssh(1).
ssh-agent
は公開鍵認証に使われる秘密鍵を保持するプログラムです。
環境変数を使うことでエージェントの場所を特定し、sshを使ったログイン時に自動的に使用されます。(意訳)
書いてあるとおりですが…
起動後最初にssh-add
で秘密鍵のパスワードを入力することで、以後入力無しでSSH接続が可能になります。
起動方法は2つ
ssh-agent bash
のようにシェルを指定することで子プロセスとして立ち上げるか、eval を介して現在のシェルで実行するか、です。
ssh-agent
単発でも起動できますが、その際は自分で標準出力された環境変数を設定してあげないと、利用ができません。
最後に
毎回コマンド実行するのは大変なので、シェルの起動時に仕込むのもありですね。
以上でした!