作業ノート

様々なまとめ、雑感など

sshで公開鍵認証を設定する

OpenSSHの場合

クライアントで公開鍵と秘密鍵を作成する
$ cd ~/.ssh
$ ssh-keygen -t rsa

id_rsa.pubが公開鍵、id_rsaが秘密鍵。

公開鍵認証でログインしたいサーバのユーザに公開鍵を送信する
$ scp ~/.ssh/id_rsa.pub foo@bar:
サーバのユーザに公開鍵を登録
$ ssh foo@bar
password:
# authorized_keysがないとき
$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
# authorized_keysがあるとき
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub
ログインする
$ ssh foo@bar

鍵を生成したときに、パスフレーズを入力していると初回ログイン時に入力が求められる。

この設定は、scp、sftpに対しても有効。

puttyの場合

クライアントで公開鍵と秘密鍵を作成する

puttygenで、SSHv2-RSAで公開鍵、秘密鍵を生成する。
ここで、公開鍵をid_rsa.pubとする。

公開鍵認証でログインしたいサーバのユーザに公開鍵を送信する

scpなどでサーバに送信

OpenSSH用の公開鍵に変換する
$ ssh-keygen -i -f ~/id_rsa.pub >> putty.pub
$ rm ~/id_rsa.pub
サーバのユーザに公開鍵を登録

上記のputty.pubの内容を登録/追加する。

# authorized_keysがないとき
$ mv ~/putty.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
# authorized_keysがあるとき
$ cat ~/putty.pub >> ~/.ssh/authorized_keys
$ rm ~/putty.pub
ログインする

puttyでログインする。

追記(09/08/18)
  • ~/.ssh/authorized_keysを作成したとき、chmodを手順に追加