自分のPC(クライアント)から他のPC(サーバー,namae@hostname)に対して
などしたいとする。
はじめに、双方で~/.ssh/ を作成、permissionを700にしておく。
クライアント側で鍵を作る。
クライアント側のPCでssh-keygen
を実行
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/hoge/.ssh/id_rsa): <-鍵のファイルの名前を聞かれるので入力 Enter passphrase (empty for no passphrase): <-パスフレーズを聞かれる(空のままEnter) Enter same passphrase again: <-パスフレーズ再入力(空のままEnter) Your identification has been saved in /home/hoge/.ssh/id_rsa. <- 秘密鍵を作成 Your public key has been saved in /home/hoge/.ssh/id_rsa.pub. <-公開鍵を作成 The key fingerprint is: .....
これで、秘密鍵/home/hoge/.ssh/id_rsa と公開鍵/home/hoge/.ssh/id_rsa.pub が作成される。
公開鍵の方をサーバーに渡す。
$ scp /home/hoge/.ssh/id_rsa.pub namae@hostname:~/.ssh/
サーバー側で設定を行う。
$ ssh namae@hostname # login ### 以下サーバー側 $ cd ~/.ssh/ $ cat id_rsa.pub >> authorized_keys # 公開鍵情報をauthorized_keysにmerge $ rm id_rsa.pub # もういらないので削除
✳︎ authorized_keysのpermissionは600にしておく chmod 600 ~/.ssh/authorized_keys
また、/etc/ssh/sshd_config を編集。
以下についてコメントアウトを解除して、activate
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
クライアント側に戻って設定。
クライアント側の~/.ssh/config に以下のように記述
HOST hoge HostName hostname User namae IdentityFile ~/.ssh/hoge_rsa # 秘密鍵のファイルを指定
こうしておけば
$ ssh hoge
でパスワード認証無しでloginできる。
✳︎この設定がなくとも
$ ssh -i ~/.ssh/id_rsa namae@hostname
でloginできる