ssh-copy-id

 ssh-copy-idコマンドを今さら知ったので、メモ。
 何に使うコマンドかというと、sshのクライアント認証で使う公開鍵をサーバー側にコピーするのに使う。

 sshリモートホストに接続する場合、接続先のリモートホストに公開鍵を登録する必要があるが、ssh-copy-idコマンドを使わないと次の手順になる。

 ssh-keygen -t dsa
→公開鍵と秘密鍵を作成
 scp .ssh/id_rsa.pub 192.168.1.16:~
→公開鍵をリモートホストのユーザーのホームディレクトリにコピー
 ssh 192.168.1.16
リモートホストに接続。ここでパスワードを入力
 mkdir .ssh
→ユーザーのホームディレクトリに.sshディレクトリがなければ作成
 cat id_dsa.pub >> .ssh/authorized_keys
→公開鍵をauthorized_keysファイルに登録

 これがssh-copy-idコマンドを使うと、以下の手順ですむ。

 ssh-keygen -t dsa
 ssh-copy-id -i .ssh/id_dsa.pub user@192.168.1.16

 
 鍵を作成した以降の処理をパーミッション設定まで含めて、きちんとやってくれるので便利。

 なお、公開鍵によるクライアント認証が成功したら、sshd_configのPasswordAuthenticationは「No」に設定しましょう。
 パスワード認証を無効にし、登録した公開鍵と対応する秘密鍵がローカルホストに登録されていないと、接続できないというようにすると、sshによるリモート接続を安全に運営できる。