Documents

SSHのログイン方法とセキュリティー


SSHのログイン方法はパスワードでのログインではなく、公開鍵と秘密鍵でのログインを推奨します。推奨というよりかは、今現在でいうと十中八九公開鍵と秘密鍵でのログインを選択することになります。相当の理由がない限りパスワードログインは利用しないというのをセキュリティー・ポリシーにした方がよいです。ですので、ここではパスワードのログインの説明はしません。

SSHのキーペアの発行

この作業は自分で行う必要があります。代理で公開鍵と秘密鍵のペアを作成してはいけません。またここ数年で生成鍵のバイト数や暗号化の方法もも変化しているので注意しましょう。標準以上の強度を保つには最低限rsaの4096バイトが必要です。

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yamakami_osamu/.ssh/id_rsa): 

実行するとプロンプトになるので、keyを生成するパスを入力します。~/.ssh/testとした場合はtestというkeyが生成されます。またプロンプト待ちになりますが、ここでは秘密鍵のパスフレーズを入力します。batch処理などに利用する場合はパスフレーズを入力すると使えなくなるので、パスフレーズは人力でログインするときのみ設定します。また設定しなくても十分なセキュリティーを担保できるので、設定シない場合はそのままエンターを押下します。

~/.ssh/test
~/.ssh/test.pub

この場合はtestが秘密鍵でtest.pubが公開鍵になります。こちらのキーペアは必ずペアで作成され、常にペアで使いますのでペアを忘れないようにしましょう。
秘密鍵は.cerとか.pemなどの拡張子がついているときがありますが、テキストファイルなので何が拡張子でもあんまり関係ありません。
秘密鍵はパーミッション400ではないと使えないので、パーミッションの変更をしておきます。

$ chmod 400 ~/.ssh/test

これで準備完了です。
SSHのkeyの使い方として最初に1回だけ生成してしまえば、基本的にこれを使うというのがベターだと思います。それぞれの案件やプロジェクトで都度生成するというやり方もあります。開発環境と本番環境で分けるとか諸々やり方はあるのですが、これは運用マターになると思うので後ほど言及します。
またファイル名は変更しても問題ありませんがペアを間違えると当然ログインできなくなるので注意しましょう。また、秘密鍵から公開鍵を生成できるのですが、秘密鍵を失くしてしまったり、接続する秘密鍵がわからなくなったら、再生成する以外の方法がありません。

Server側に公開鍵を登録する

公開鍵は公開鍵なので公開してもセキュリティー上問題ありません。公開鍵は公開用の暗号キーが一行で書かれています。語尾に半角を空けて公開鍵のコメントを書くことができます。通常は自分のEmailなどを書いておきます。どのキーペアのわかるものを書いておけばよいと思います。
公開鍵の登録は通常~/.ssh/authorized_keysに一行づつ登録します。パーミッションは644でよいです。サーバー側のこのファイルに公開鍵を登録するとSSHでログインできるようになります。

SSHの接続

こういう感じでユーザー名とホストでログインします。-vvvvはデバックコードなのであってもなくてもよいですが、ログインできない場合はこのオプションをつけるとログインできない原因がわかります。

$ ssh usr@192.168.1.101 -i ~/.ssh/test -p 22 -vvvv

sshコマンドのオプションはたくさんありますが、ここでは-iで秘密鍵のパス、-pでポート番号(オプションがなければ自動的に22ポートに接続します。) -vvvvのデバックオプションになります。




2022.04.12