OpenSSH
SSHとは、ネットワークを介して安全な通信を行うためのプロトコル。強力な認証機能と暗号化により、ファイル転送やリモート操作を安全に行うことができる。
SSHの認証手順
- ホスト認証
- ユーザー認証
- 公開鍵認証
- パスワード認証
ユーザー認証
ユーザー認証方法は複数用意されている。代表的なものは
- 公開鍵認証
- パスワード認証
公開鍵認証は公開鍵暗号方式を利用してユーザーを認証する。公開鍵認証を行うには、サーバ側にあらかじめ公開鍵を登録しておく必要がある。
SSHサーバの設定
Linux ではオープンソースのソフトウェア、OpenSSH が採用されている
OpenSSH を利用するのに必要なパッケージ
- openSSH
- openssh-server
- openssh-client
- openssl
- openssh-askpass (必須ではない)
- openssh-askpass-gnome (必須ではない)
SSHサーバの設定ファイル
- /etc/ssh/sshd_config
デフォルトのままでも利用可能。安全性をさらに高める、設定変更するとき用に
Protocol
デフォルトでは、SSH バージョン1、 SSH バージョン2 両方のプロトコルを扱う。クライアント側がバージョン2に対応しているのであれば、「Protocol 2」としておくのが吉
Protocol 2
PermitRootLogin
root ユーザーによるログインを許可するかどうかを指定する。万が一 root パスが推測された場合、ログインを許してしまうことになるため、「PermitRootLogin no」としておくのが安全
#PermitRootLogin yes
PermitEmptyPasswords
パスワード認証を許可している場合、空パスワードを許可するかどうかを指定する。セキュリティを高めるため「PermitEmptyPasswords no」としておくのが無難
#PermitEmptyPasswords no
PasswordAuthentication
パスワード認証を許可するかどうかを指定する。公開鍵認証の設定が完了すればパスワード認証は必要ないため、設定完了後に「PasswordAuthentication no」とするとセキュリティあっぷ
PasswordAuthentication yes
SSH クライアントの利用方法
SSHクライアントコマンドは、openssh-client パッケージに含まれている。
主なコマンド
ssh | telnet の代替コマンドとして利用できる |
scp | ファイルコピーを行う |
ssh コマンド
ssh ユーザー名@ホスト名 or IPアドレス
例)ホスト「host」に、ユーザー「hoge」としてログイン
ssh hoge@host
初回接続時、SSHサーバからホスト認証鍵が送られてくるので、受け入れる場合は「yes」と入力。次にパスワードを入力するとログインが完了する。ホスト認証鍵はユーザーの 「 ~/.ssh/known_hosts 」 ファイルに格納される。
※ ホスト認証鍵のバックアップなしでサーバを再インストールした場合、初回起動時にホスト認証鍵が自動的に生成される。新たなホスト認証鍵は以前のものとは異なるため、そのままでは警告が出る。このような場合、「 ~/.ssh/known_hosts 」 ファイル内の該当エントリを削除すれば解決する
公開鍵認証の利用
公開鍵認証を使うと、パスワードを使わないでログインできる。その代わり、正当な秘密鍵と、秘密鍵を利用するためのパスフレーズを使う。公開鍵認証を利用するには、まず公開鍵と秘密鍵の鍵ペアを作成する必要がある。
鍵ペアの作成
ssh-keygen オプション
公開鍵と秘密鍵は、SSH のバージョンと暗号化アルゴリズムによる複数の種類がある
SSH の鍵ファイル
SSH バージョン | 秘密鍵ファイル | 公開鍵ファイル | ssh-keygen コマンドのオプション |
---|---|---|---|
バージョン1 | identity | identity.pub | -t rsa1 |
バージョン2 (RSA) | id_rsa | id_rsa.pub | -t rsa |
バージョン2 (DSA) | id_dsa | id_dsa.pub | -t dsa |
例) バージョン2 (DSA) の鍵ペア作成
ssh-keygen -t dsa
- 鍵ファイルの名前を指定
通常はデフォルトでOKなのでそのまま [Enter] キーを押せばOK - パスフレーズの入力
秘密鍵を使う時に求められるパスフレーズを2度入力する。パスワードよりも長い、空白を含めた文字列の指定が可能。 [Enter] キーのみを押すと空のパスフレーズが作成される。
鍵ペアは、「 ~/.ssh 」ディレクトリ以下に作成される