このページでは、公開鍵認証の仕組みについて説明しています。公開鍵認証の設定については、公開鍵認証の設定で解説しています。
公開鍵認証とは、サーバーへのログイン時に認証を行う仕組みであり、ユーザー名とパスワードを使用した認証と比べ、よりセキュリティや柔軟性が高いのが特徴です。いっぽうで、若干設定が難しいという欠点もあります。
パスワードを使った認証では、ユーザー名とパスワードという2つの情報だけで認証を行います。このとき、パスワードは暗号化されずに直接サーバーに送信されるため、たとえばサーバーがハッキングされていたり、別のサーバーによって成りすまされていたりといった場合、パスワードは簡単に盗まれてしまいます。
公開鍵認証を利用することで、このような問題を解決することができます。
公開鍵認証では、「公開鍵(public key)」と「秘密鍵(private key)」という、2種類の鍵情報を利用して認証を行います。
公開鍵認証では、秘密鍵やパスフレーズといった情報は一切やり取りされません。そのため、もしサーバーがハッキングされていたり、なりすましされていても重要な情報が盗まれることはありません。ただし、クライアント側のPCからなんらかの手段で秘密鍵が盗まれてしまい、さらにパスフレーズが推測されてしまった場合は、それらの情報を利用してサーバーにログインすることは可能です。そのため、パスフレーズは必ず設定しておくべきです。
ちなみに、WinSCPでは「Pageant」というツールを利用することで、公開鍵認証の際にパスフレーズを入力する手間を抑えることができます。Pageantは常駐型のユーティリティで、起動時に秘密鍵をロードしてパスフレーズを入力します。入力したパスフレーズは記憶されるため、一度パスフレーズを入力してしまえば、Pageantを終了しない限りはパスフレーズを入力せず自動的に認証を行わせることができます。パスフレーズはメモリ内に保存され、ディスクには記録されないため、セキュリティ面での危険性も低いです。これは多くのユーザーにとって便利な解決法といえるでしょう。
なお、公開鍵暗号のアルゴリズムにはいくつかの種類があります。もっとも有名なのがRSAですが、そのほかにもDSA(DSS)と呼ばれるものもあります。
公開鍵/秘密鍵の作成は、PuTTYgenを使って行えます。
SSH-1とSSH-2では、秘密鍵のファイルフォーマットが異なります。さらに、SSH-1の秘密鍵ファイル形式は1つしかありませんが、SSH-2の秘密鍵ファイル形式は複数があります。WinSCPではPuTTYなどで利用されるフォーマットを利用しています。そのほか、たとえばOpenSSHやssh.comといったSSH-2クライアントは異なるファイルフォーマットの秘密鍵を使用します。これらのファイルフォーマットの秘密鍵を利用する場合は、PuTTYgenを利用してファイルフォーマットを変換する必要があります。
[PageInfo]
LastUpdate: 2012-11-20 12:58:47, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members