OpenSSH

Taskselでインストールされたパッケージの確認

$ tasksel --task-packages openssh-server
libwrap0 # TCP Wrapperのライブラリ
tcpd # TCP Wrapperのユーティリティ
openssh-server # OpenSSHサーバ

SSH鍵の設定

インストール時点ですでにプレインテキストでのパスワード認証は可能になっているが、公開鍵での認証に限定したいのでSSH用のRSA鍵を設定する。普段とは逆だが、今回はサーバ側で鍵を生成して、秘密鍵をローカルにダウンロードして使うことにする。

SSH鍵ペアの生成
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ユーザ名/.ssh/id_rsa):
Created directory '/home/ユーザ名/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ユーザ名/.ssh/id_rsa.
Your public key has been saved in /home/ユーザ名/.ssh/id_rsa.pub.
生成した公開鍵を信頼

$ cp .ssh/id_rsa.pub .ssh/authorized_keys

すでに「authorized_keys」が存在する場合は内容を追加
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

秘密鍵をローカルPCにダウンロード

SCPを使いたいところだが、日頃管理に使う端末であるWindows XP君にはそんな気の利いたコマンドはないので、WinSCPを利用してサーバから秘密鍵をダウンロード。

秘密鍵をローカルPCのターミナルに登録

TeraTermの「RSA/DSA認証を使う>秘密鍵」ダイアログでダウンロードした秘密鍵を選択して登録。
WinSCPにも同様に登録する。

SSHDの設定

設定ファイルは/etc/ssh/sshd_config。
クリアテキストのパスワード認証は無効にして、公開鍵認証でのログインのみを有効にする。
その他の変更点は次の通り。

Port ****** #ポート番号を変更
PermitRootLogin no #ルートのログインを不許可
PasswordAuthentication no #パスワード認証を不許可

課題

ルーターではじいているので、いまのところssh接続できるのはローカルネットワーク限定。
だけどいずれ外部から利用するを考えると、fail2banあたりで防御を固めておいた方がいいかなと思いつつ、とりあえず今日のところはこのあたりで。