毎回調べてるのでメモ。
やりたいこと
- ssh で入るときに鍵を使いたい
- ユーザー名を毎回入力せず済むようにする
- パスフレーズを毎回入力せずに済むようにする
手順
クライアント側で鍵作成
$ cd ~/.ssh
$ ssh-keygen -t rsa -f id_rsa_hoge
id_rsa_hoge
は適当につける。
パスフレーズは何も入力せず、enterを押す。
パーミッションは以下を設定しておくこと。
$ chmod 600 ~/.ssh/id_rsa_hoge
$ chmod 700 ~/.ssh
サーバーに鍵転送・設定
ssh-copy-idを使ったかんたんなやり方
ssh-copy-id
コマンドを使うことで、一行で転送・設定が行える。
$ cd ~/.ssh
$ ssh-copy-id -i id_rsa.hoge {user}@{host}
ちょっと面倒なやり方
クライアント側から公開鍵をscpする。
$ cd ~/.ssh
$ scp id_rsa_hoge.pub {user}@{host}:~/.ssh/
サーバーに.sshディレクトリがなければ作る。 chmod 700 ~/.ssh
しておくこと。
サーバー側で以下の設定をする。
$ cd ~/.ssh
$ cat id_rsa_hoge.pub >> authorized_keys
$ chmod 600 authorized_keys
$ rm -fv id_rsa_hoge.pub
パーミッションをちゃんと設定しないとつながらないので注意。
クライアント側の設定
~/.ssh/config
を以下のように編集しておく。
Host {host}
HostName {hostname}
User {user}
IdentityFile ~/.ssh/id_rsa_hoge
パーミッションも設定する
$ chmod 600 ~/.ssh/id_rsa_hoge
クライアント側からはssh {host}
ってやるだけでssh接続ができるようになる
参考URL
SSHの鍵認証設定 - Qiita
ssh-copy-idで公開鍵を渡す - Qiita
SSHで鍵認証を用いて、パスワードなしでログインする方法