OpenSSHを用いた公開鍵認証のやり方
ubuntuを使い始めて2年。ようやくやり方覚えました。遅すぎました。
公開鍵・秘密鍵の作成
まず先に公開鍵・秘密鍵をクライアントPC側で作成します。先にsshdの設定を変更すると泣くハメになる場合があります。
$ ssh-keygen -t rsa
を実行。
鍵ファイルの保存先を聞かれるので、必要なら指定します。
次にパスフレーズを入力するかどうか聞かれます。
公開鍵で暗号化した情報を復号する際に使用されるようです。
鍵のペアに対してさらにパスワードを設定する感じ(だと思う)。
パスフレーズは再入力させれますので再入力します。
あとは適当にリターンキー連打。
作成が完了すると、ターミナルにも表示されてますが、$HOME/.ssh以下に秘密鍵・公開鍵のファイルがそれぞれ「id_rsa」「id_rsa.pub」として保存されています。
このうち、id_rsaファイルはSSHクライアントが使用する秘密鍵情報が入ったファイルなのでこのまま保存しておきます。
id_rsa.pubファイルはサーバーへ登録する公開鍵情報が入ったファイルですので、ssh接続をしたいサーバーへこのファイルを転送します。
$ scp $HOME/.ssh/id_rsa.pub hoge@hogehoge:.ssh/
SCPで転送する場合はこうなります。
ここからサーバー側での作業になります。
転送したid_rsa.pubファイルの内容を、サーバー側のログインしたいユーザーの$HOME/.ssh/authorized_keysへ追記します。
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
authorized_keysを初めて作成した場合、他のユーザーに触られると面倒になりますので、パーミッションを600へ変更しておきましょう。
$ chmod 600 $HOME/.ssh/authorized_keys
以上で鍵の登録は終了です。