公開鍵認証

Linuxマシンにログインするためには通常、アカウント名とパスワードをサーバーに送って認証を受ける。 セキュリティ面でより安全性の高い認証方法として、公開鍵認証と呼ばれる方法がある。

公開鍵認証

仕組みについてはインターネット上で検索して調べる。

準備

クライアント側(接続元)で秘密鍵と公開鍵のペアを生成して、公開鍵をサーバーに登録する。

ssh-keygen -t rsa -i ~/.ssh/id_rsa_serverName

上のコマンドを実行すると暗号化された鍵ファイルを読み込むために必要なパスワード(パスフレーズと呼ぶ)を設定するように聞かれるので、パスフレーズを入力する。確認用に2回入力する。この例ではRSAと呼ばれる暗号化方式を使っている。鍵ファイルは~/.ssh/に以下の2つのファイルが作られるはずである。

ファイル名のserverNameの部分は、接続先のサーバー名が分かるような名前(サーバーのホスト名)を付けておくと便利である。 これらのファイルは本人以外は読み書きできないようにファイル属性を確認する。本人のみが読み書きできるようにするには以下のコマンドを実行する。

chmod 600 ~/.ssh/id_rsa_serverName*

方法1:

ssh-copy-id ~/.ssh/id_rsa_serverName.pub <user>@<serverURL>

方法2:

サーバー側に予め~/.ssh/authorized_keysというファイルが存在しないとうまくいかないことがある。その場合は以下のように手動で、公開鍵ファイルをサーバーにコピーして、ファイルの中身を~/.ssh/authorized_keysに追加する。

scp ~/.ssh/id_rsa_serverName.pub <user>@<serverURL>:~/.ssh

この後、サーバーにログインして公開鍵ファイルの中身をauthorized_keysに追加する。

ssh <user>@<serverURL>
cd ~/.ssh
cat id_rsa_serverName.pub >> authorized_keys

接続

公開鍵認証を使ってサーバーにログインする。

ssh -XY ~/.ssh/id_rsa_serverName <user>@<serverURL>

PublicKeyAuthentication (最終更新日時 2020-11-19 06:17:08 更新者 TakanoriKono)