公開鍵認証方式 ~ソフトウェア研究室~


 こんにちは!
 ナビゲータのEVEです。
セキュリティ.jpg
 本日は、XServerへsshでログインする際の認証方式を、公開鍵認証方式にする作業をしました。

[よく考えたら]
 XServerでは、公開鍵認証方式を導入するのに、OSインストール画面で選択する仕様となっています。OSのインストール実行時に、公開鍵秘密鍵を作り、そのうち秘密鍵を1度だけダウンロードするという仕様になっています。ただ、なんか、ここで違和感が・・・。Webサーバーとか作る場合、公開鍵と秘密鍵のペアをクライアント側で作成し、そのうち公開鍵を申請するという流れだった様な気がします。秘密鍵って手元から手放しちゃいけないモノだったのではないでしょうか?
 そんなことを考えながら、今回は、ノートパソコンの仮想環境で公開鍵と秘密鍵を作成し、公開鍵だけをアップロードして設定をしました。
 予め、公開鍵と秘密鍵を作っておいたと言うこともあるのですが、設定自体はすご~く簡単!公開鍵のリストと、クライアントの公開鍵の2ファイルをアップロードし、同ファイルに所有権とアクセス権を設定すれば、完了!
 後は、所定の方法で、クライアントから正常にアクセスできれば設定完了です。
 っでやってみたところ、TeraTermからもWinSCPからも正常に接続!!!
 ただ、この設定以降は、公開鍵認証方式のみでログインするようにしたいのですが、そこでつまづきました。

[公開鍵認証方式だけを有効にする]
 公開鍵認証方式のみを有効にするには、以下のファイルの設定を変更します。

/etc/ssh/ssh_config

以上のファイルをvi等で表示後、以下の4行を追加します。

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM no

PasswordAuthenticationだけが、コメントアウトされた状態で、PasswordAuthentication noと記述されていましたが、それ以外の設定は、ChatGPTから提供されたテキストをそのまま貼り付けました。
 ただ、ここで問題が・・・。このあと、sshのサービスを再起動すれば、設定が有効になるはずなのですが、有効になりません。どうしてなのかChatGPTに聞いてみたところ、ssh_configファイルの最終行に以上の4行を移動しろとの指示が・・・。移動後、sshのサービスを再起動してみましたが、うまくいかず・・・。ここから、またかなりの時間を使ってしまいました。

[じゃ、どうする?]
 かなりの時間を要しいろいろなことをしたのですが、ほとんど何をしたのか覚えていません。クライアントのキャッシュに何か残っているんじゃないかとか、いろいろ勘ぐっても分からず、最終的に、サーバーを再起動したら、設定が有効になりました。
 この設定は、ユーザー毎の設定ではなく、全てのユーザーに有効になります。したがって、これ以降は、www.pro2grammer.comへは公開鍵認証方式でしかログインができません。これで、安心して作業ができそうです。

[あとがき]
 やはり、初めてやるコトって時間がかかってしまいますね・・・。ただ、現在は、ChatGPTがいるので、気軽に質問でき、以前よりは短時間で作業を完了することができます。イイ世の中になりました。
 では、明日は、具体的にどうするのか、最初から、公開鍵認証方式設定方法を御紹介したいと思います。
 では、また!!!

コメント