ホーム > 技術情報 > セキュリティ > 公開鍵認証によるSSH接続

公開鍵認証によるSSH接続

端末からUNIX系コンピュータにログインする際によく使用されるSSH接続のある認証方法について検証してみました。

こんにちは、EITの新人Sです。
今回は公開鍵を使用したSSH接続の設定方法を紹介いたします。

   SSH接続とは

SSH(Secure Shell)とは、ネットワークを介して別のコンピュータにログインして操作するためのソフトウェアの一つです。主にTeraTermというツールを使い、WindowsからUNIX系OSへSSH接続し操作を行う。といった使用例が最もポピュラーと思います。

 

認証方法
SSH接続において認証方法は複数ありますが、多く使われる方法は以下の2種類です。

1.パスワード認証
 接続先のユーザ名とパスワードで認証を行う
2.公開鍵認証
    公開鍵暗号システムで認証を行う

これらの認証方法の中で、一番シンプルな認証方式は1.パスワード認証です。ユーザ名とパスワードの入力だけで接続できる簡単さから、パスワード認証を行っている方が多いのではないでしょうか。しかし、パスワード認証はユーザ名とパスワードを毎回入力する方式なのでパスワード漏えいの危険性も認識するべきでしょう。

 

公開鍵認証

前置きが終わり、ここから本題になります。今回のメイントピック「公開鍵認証」の紹介です。

公開鍵認証とは公開鍵と秘密鍵を使用し、サーバとクライアントの認証を行う方式のことで、パスワード認証より安全な認証方式となっています。公開鍵はサーバ側に設置しておく鍵のことで、秘密鍵とはクライアントに格納される非公開の認証情報です。別途指定したパスフレーズを鍵として暗号化しておきます。

そしてこの二つの鍵は公開鍵で暗号化されたデータは秘密鍵でしか復号化できず、秘密鍵で暗号化されたデータは公開鍵でしか複合化できない関係を持っています。

では、この関係を使った公開鍵認証の流れを確認していきましょう。

1.サーバ側の公開鍵で適当なデータを暗号化します
2.暗号化したデータをサーバからクライアントに送信します
3.クライアント側の秘密鍵を入力したパスフレーズで複合化します
4.受け取ったデータを秘密鍵で復号化します
5.復号化したデータをクライアントからサーバに送信します
6.クライアントから受け取ったデータとサーバで暗号化する前のデータを比較します

そして、比較の結果、データが一致すればクライアントからサーバに接続できることになります!

 

  実証!

実際に公開鍵認証でSSH接続をしてみましょう。
手順と環境は以下の通りです。

手順
1.サーバで公開鍵と秘密鍵を作成
2.公開鍵の設定
3.クライアント側へ秘密鍵の送信
4.認証開始!

環境
クライアント:Windows 7 (192.168.56.1)
サーバ   :CentOS 7  (tanaka@192.168.56.4)
ツール   :TeraTerm

 

———————————————————————-

1.サーバで公開鍵と秘密鍵を作成する
対象となるユーザでssh-keygenコマンドを実行します。

1

ssh-keygenコマンドを実行すると、~/.sshディレクトリが作成されその配下に公開鍵と秘密鍵が作成されます。

このときに、秘密鍵を暗号化する鍵(パスフレーズ)を決定します。
※今回は指定しません

 

2.公開鍵の設定
 作成された公開鍵(~/.ssh/id_rsa.pub)をauthorized_keysをリネームします。2

これによってサーバ側の設定は完了です!

 

3.クライアント側へ秘密鍵の送信
TeraTermの機能「SSH SCP」を使い、秘密鍵(~/.ssh/id_rsa)をクライアントに送信します。

3

 

4.認証開始!
TeraTermを起動し、ホスト名(IPアドレス)を入力してOKを押します。

下の画面でユーザ名を入力し、「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックします。先の手順でサーバから受け取った秘密鍵を指定します。

ws000018

入力、指定ができたらOKを押すと、ログイン完了です。

メリット!デメリット!

SSH接続におけるパスワード認証公開鍵認証の説明をしました。結局、どちらがいいのでしょうか。

2つの認証のメリット・デメリットをまとめてみました。

パスワード認証
メリット
・ユーザ名とパスワードさえ覚えておけばサーバに接続できる

デメリット
・接続の度にパスワードを入力するので漏えいの恐れがある

公開鍵認証
メリット
・サーバー側のユーザのパスワードを入力しなくて済むので
 安全性が高い(対象ユーザとパスフレーズの入力、秘密鍵の指定)

デメリット
・鍵の作成や設置など事前準備が面倒

私は安全性が高い分、公開鍵認証が好みです。この機会に、環境に合った認証方法を試して選んでみてください。

お問い合わせ

各種お問い合わせに関しては、こちらからお願い致します。