ssh-copy-idで公開鍵登録

最近知ったのでメモ。

ssh-copy-idコマンドを利用することで、面倒な公開鍵登録が楽になる。

インストール

Linux系だと既にインストールされているかも

$ brew install ssh-copy-id
$ which ssh-copy-id
/usr/local/bin/ssh-copy-id

リモートホストのauthorized_keysに公開鍵を登録

ユーザ名: hogeリモートホスト名: remote-hostに登録する場合

$ ssh-keygen -t rsa  # 鍵を作成
$ ssh-copy-id -i .ssh/id_rsa.pub hoge@remote-host #鍵を転送
  • 手動で行う場合

いままでは下記の通り実施していた。

$ ssh-keygen -t rsa  # 鍵を作成
$ ssh hoge@remote-host "mkdir -m 700 .ssh"
$ cat ./.ssh/id_rsa.pub | ssh hoge@remote-host "cat >> ./.ssh/authorized_keys"
$ ssh hoge@remote-host "chmod 600 .ssh/*"

パスワード認証を止める設定

なお、sshdを公開鍵認証にするには下記の通り/etc/ssh/sshd_configを修正する。

PasswordAuthentication no
UsePAM no