技術情報ブログ

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です。一旦リモート側からログアウトし、もう一度ログインしてみてください。今度はパスワードは聞かれず、秘密鍵のパスフレーズをきかれて公開鍵認証でログインできるはずです。

慣れてきたらリモート側のサーバの設定でパスワード認証は禁止にして、公開鍵認証だけを有効にするとよいでしょう。

一覧に戻る