ssh-copy-idを使って、sshの公開鍵認証の鍵登録を簡単に行う方法

ssh-copy-idって知っていますか?
ssh-copy-idを使えば複数台の公開鍵登録を自動で行うことができます。
以下にssh-copy-idの使用方法等を記します。


sshの公開鍵の登録

sshの公開鍵認証を行うためには、以下の手順が必要です。

  1. (新規に作成する必要があれば)公開鍵と秘密鍵のペアを作成する
  2. 作った公開鍵を接続先ホストの ~/.ssh/authorized_keys に追加する
  1. ssh-keygenを実行して作成します。
  2. は手動でも行えますが、しかし、
    1. 接続先ホストにログインしてから作業しなければならない
    2. /.ssh/authorized_keysは、元々ファイルが存在していないため作成する必要がある

    3. エディタ等での ~/.ssh/authorized_keys の編集作業
    4. ファイルやディレクトリのパーミッションを適切に設定する必要がある

等々でわりと面倒です。何十台も接続先ホストがあるとすると、かなりの負担になります。
これを自動で行うのがssh-copy-idコマンドです。

ssh-copy-idの利用

通常のssh接続と同様に、引数にアカウント@接続先ホスト名を指定して実行します。
接続先のパスワードの入力を求められるので、それに答えます。

% ssh-copy-id user01@192.168.10.15
Password:
Now try logging into the machine, with "ssh 'user01@192.168.10.15'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

これだけで接続先ホストでの面倒な作業は省略できます。

登録する公開鍵ファイルを変える。

登録する公開鍵ファイルはデフォルトで、~/.ssh/id_rsa.pubです。
任意のファイルを指定するには、-iオプションで指定します。

% ssh-copy-id -i ~/.ssh/hoge.pub user01@192.168.10.15
Password:
Now try logging into the machine, with "ssh 'user01@192.168.10.15'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

ちなみに、ssh-copy-idの実体は簡単なシェルスクリプトです。
引数の公開鍵が本当の公開鍵であるかなどのチェックはしていないので、
ファイルの指定の際には気を付けて下さい。
(ファイル名の拡張子が.pubであれば、どんなファイルでも~/.ssh/authorized_keysに登録してしまいます。)

以上、ssh-copy-idを使って、sshの公開鍵認証の鍵登録を簡単に行う方法についてでした。



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS