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

Gustavo_Belemmi / Pixabay
Ubuntuのセットアップに関連する記事は
Ubuntu 16.04 Serverのインストールの流れを説明します。 内容:①仮想マシンの準備 ②OSのインストール ③ネットワーク設定 ④各種アプリケーションのインストール
から辿れるようにしておりますのでこちらもどうぞ。

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

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

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

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

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

…んなこたーなかった。

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

スポンサーリンク

使い方

ssh-agentを起動する

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

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

パスフレーズを登録する

ssh-agent を起動した後は

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

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

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

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

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

関連記事

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

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

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