ssh-agentを使ってsshのパスフレーズを省略する方法

Ubuntu
Gustavo_Belemmi / Pixabay
スポンサーリンク

公開鍵認証方式でSSH接続する時の話。

パスフレーズを登録した公開鍵を使う場合、毎回パスフレーズの入力を求められます。

fuka@techo:~$ ssh xsrv    #←接続1回目
Enter passphrase for key '/home/fuka/.ssh/****.xserver.jp.pem':
Last login: Mon Jan 30 10:07:36 2017 from *****.ne.jp
[ygkb@sv1507 ~]$ exit
logout
Connection to ****.xserver.jp closed.

fuka@techo:~$ ssh xsrv    #←接続2回目
Enter passphrase for key '/home/fuka/.ssh/****.xserver.jp.pem':    #←また入力。面倒くさい
Last login: Tue Jan 31 23:04:21 2017 from *****.ne.jp
:(略)

これはセキュリティ上望ましい動きですが、ぶっちゃけ面倒くさいです。

wordmoveの様なバッチ処理を流した日には、5回も6回もパスフレーズを打ち込まなければいけないのでたまりません。

これってまさか、パスフレーズを聞いてきたら都度入力するようなバッチ処理を作らなきゃいけないの? マゾなの?

…んなこたーなかった。

ssh-agentを使えば最初の一回目以降はパスフレーズを覚えておいてくれます。

スポンサーリンク
スポンサーリンク

使い方

ssh-agentを起動する

eval `ssh-agent`

Agent pid 20045」の様な文字列が返ってくればOK。

これはログインの都度、実行しなければなりません。
自分は ~/.bashrc の末尾にこれを追記して自動実行されるようにしました。

パスフレーズを登録する

ssh-agent を起動した後は

ssh-add

を実行し、デフォルトの公開鍵(~/.ssh/id_rss)に対するパスフレーズを登録します。

fuka@techo:~$ ssh-add
Enter passphrase for /home/fuka/.ssh/id_rsa:
Identity added: /home/fuka/.ssh/id_rsa (/home/fuka/.ssh/id_rsa)

引数に複数の公開鍵ファイルを指定すると、一括登録の動きになります。

fuka@techo:~$ ssh-add ~/.ssh/file-a.pem ~/.ssh/file-b.pem
Enter passphrase for /home/fuka/.ssh/file-a.pem:
Identity added: /home/fuka/.ssh/id_rsa (/home/fuka/.ssh/file-a.pem)
Enter passphrase for /home/fuka/.ssh/file-b.pem:
Identity added: /home/fuka/.ssh/id_rsa (/home/fuka/.ssh/file-b.pem)

これにより「バッチ処理で矢継ぎ早に各サーバーからファイルを取ってくる(複数サーバに接続する)」みたいな処理を実行してもパスフレーズを聞かれずに済むようになります。

後はいつも通りsshを使うだけ

fuka@techo:~$ ssh-add    #パスフレーズ登録
Enter passphrase for /home/fuka/.ssh/id_rsa:
Identity added: /home/fuka/.ssh/id_rsa (/home/fuka/.ssh/id_rsa)
fuka@techo:~$ ssh xsrv    #SSH接続
Last login: Tue Jan 31 23:04:35 2017 from *****.vectant.ne.jp    #←スルーパス
[ygkb@sv1507 ~]$

5行目、最初の例と違いパスフレーズを聞かれていないのがお分かりでしょうか。

関連記事

server-memo.net様の記事で勉強しました。

ssh-agentを使って公開鍵認証方式のsshパスワード入力を省略する方法
ssh-agentを使用した、公開鍵認証方式のSSHパスフレーズ入力を省略する方法です。ssh-agentとは簡単に説明すると、公開鍵認証方式による認証を行っているSSHサーバへ接続する際、秘密鍵に設定されているパスフレーズの入力を代わりに

当記事は必要最小限の事しか書いておりませんが、もう少し原理などを深掘りしたい場合は上記ページもご覧ください。

Amazonプライムデー(7/15~16)
最後に、少しお知らせさせてください!

Amazon2大セールの1つプライムデーいよいよ今日(16日 23:59)まで。

もしAmazonで購入をお考えなら、下記2つの同時開催キャンペーンを使い、ギフト券経由で買うとポイントがお得です。

  1. 紙ギフト券 1,000ポイントキャンペーン】(今日まで)
    5,000円以上買うと500pt、人にあげたら500ptもらえる(利率20%)
    人にあげなくても別アカウントならOK
  2. 電子ギフト券 ポイント付与率UP】(今日まで)
    ポイント付与率が最大3%に増量中

電子書籍読み放題が3ヶ月間99円」「音楽聴き放題が4ヶ月間99円」などのキャンペーンも。
他にも沢山ありますので、↓の記事も参照下さい。

すべて今日まで。気になる方はお急ぎください。

キャンペーンまとめ記事を読む

割り込み、失礼しました! では(^o^)/

タイトルとURLをコピーしました