SSHでセキュアに

SSHとは

SSHとはSecure SHellの略であり、一般的にtelnetに暗号化を施した物との認識がある。だが、その他にも便利な機能がたくさんある。今回使用するOpenSSHには、telnetのsshやFTPのSFTPといった機能がある。そして、すばらしいポートフォワードもある。

さっそくインスト

 apt-get install ssh

インスト時にセキュリティ的にバージョン1は問題があるのでバージョン2だけ使えるようにしますか?って聞かれるのでYESと答えてやりましょう。

設定

/etc/ssh/sshd_configに設定ファイルができるので以下を変更してやります。

Port 2222 #22のままだとアタックが激しいので変えてやる
PermitRootLogin no #rootログイン拒否
PasswordAuthentication no #パスワードによるログイン拒否
RSAAuthentication yes #RSAの公開鍵認証を有効にする
PubkeyAuthentication yes #公開鍵を使用する
AuthorizedKeysFile      %h/.ssh/authorized_keys #認証鍵の設置場所
IgnoreRhosts yes #.rhostsを無効
RhostsRSAAuthentication no #/etc/ssh_known_hostsを無効
HostbasedAuthentication no #ホスト認証を無効
ChallengeResponseAuthentication no #チャレンジレスポンスを無効
UsePAM no #PAMを無効

鍵の作成

SSHの認証方式でRSAの公開鍵認証を使用します。簡単に説明すると、サーバで公開鍵を持って、クライアントが秘密鍵を持って認証する。はい、それだけです。

この作業は通常使うユーザで実行する必要があります。もちろん、ユーザ毎に設定が必要です。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/foge/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/foge/.ssh/id_rsa.
Your public key has been saved in /home/foge/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx foge@nai.homelinux.net

「Enter passphrase (empty for no passphrase):」このパスフレーズというのは鍵作成に必要なパスワードフレーズです。通常のログインパスワードとは別にするのが望ましいですな。

~/.ssh/の下に2つの鍵ファイルが作成されるんで、下の様にやってください。

  • 公開鍵(~/.ssh/id_rsa.pub)

    sshd_configで設定した通りのファイル名に変更する

    $mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
  • 秘密鍵(~/.ssh/id_rsa)

    クライアントに安全に渡す。USBメモリやフロッピーディスクなりで。サーバにはファイルを残さないこと

    $rm ~/.ssh/id_rsa

クライアント接続

さっそく、クライアントからリモートアクセスしてみよう。今回はTeraTermを使用する。

http://www.forest.impress.co.jp/lib/inet/servernt/netuty/utf8teraterm.html

接続先を設定

以下のように、ホスト、ポート、SSHのバージョンを選らんでOKを押す。
クライアント接続

鍵の設定

次にID、パスワードを入力し、上で作成した鍵ファイルを指定してやる。
鍵の設定

パスフレーズ無しにするには

SSHでパスフレーズ無しもできる。ssh-keygenでパスフレーズを無しと答えればいい。具体的には、「Enter passphrase (empty for no passphrase):」の時に、エンターを押せばいい。そうすれば、パスフレーズがなくなる。cygwinとかsftpとかsshなど使うと快適。

SFTP

デフォルトで/etc/ssh/sshd_configに以下のような設定がある。

 Subsystem       sftp    /usr/lib/sftp-server

SFTPが使えるので、つかってみよう。

クライアント

winscpという日本語にも対応しているソフトがあるので使用する。
http://winscp.net/eng/download.php
ここの「Multilanguage installation package」は日本語も使える。


debian Valid HTML 4.01 Strict [VALID RSS!]