Ubuntu 7
2022.04.08
今回は、公開鍵暗号でログインするのをやってみたいと思います。なにも設定を変更しない状態でリモートマシンにログインするときは、パスワード認証を使っていると思います。これを変更します。
まず、sshのキーペアを作成したことがなければ新たに作成します。ローカルマシン側で
ls ~/.ssh
して、id_rsa と id_rsa.pub (など)が存在すれば、すでにキーペアが作られていますので、ssh-keygenはしなくてもOKです。ない場合は
ssh-keygen -t rsa -b 4096
などとします。キーの保存場所を聞かれるのでそのまま「エンターキー」を押します。次にパスフレーズを聞かれるのですが、これは何かというと秘密鍵にかけるパスワードのようなものです。強度の高そうな (そして忘れなさそうな)パスフレーズをつけます。パスフレーズを「つけない」(空のまま)という手もありますが、githubは強度の高いパスフレーズをつけるようにと言っているようです。パスフレーズはつけたほうがよさそうです。
これでキーペアができました。
cat ~/.ssh/id_rsa.pub
などとして公開鍵を表示し、マウスでコピーします。リモート側のマシンでvi等で ~/.ssh/authorized_keysというファイルを開きます。
vim ~/.ssh/authorized_keys
先ほどコピーした公開鍵をペーストします。次にこの authorized_keysファイルのパーミッションを400に変更します。
chmod 400 ~/.ssh/authorized_keys
以上で OKです。一旦リモート側からログアウトし、もう一度ログインしてみてください。今度はパスワードは聞かれず、秘密鍵のパスフレーズをきかれて公開鍵認証でログインできるはずです。
慣れてきたらリモート側のサーバの設定でパスワード認証は禁止にして、公開鍵認証だけを有効にするとよいでしょう。