さくらのVPSを借りて、カスタムOSインストールでDebian 6.0を選択してみました。先ずは、sudoとOpenSSH(Open Secure Shell)のインストールと設定からスタート。
sudoのインストールと設定
Debianのインストールが完了後、さくらのVPSのリモートコンソール上からsuコマンドでスーパーユーザーとなり、sudoパッケージをインストールします。
su
aptitude install sudo
この記事では、パッケージのインストールや削除にaptitudeコマンドを使用しています。aptitudeの代わりにapt-getコマンドを使っても構いませんが、どちらかに統一して使用した方がよいかもしれません。aptitudeコマンドは、基本的な機能はapt-getコマンドとほとんど同じですが、removeの際に依存するライブラリが他のパッケージが依存していない場合は、いっしょに削除してくれるというメリットがあります。
次に、スーパーユーザーのままで、visudoコマンドを実行。これは、sudoの設定ファイルである/etc/sudoersをデフォルトのエディタで編集するためのコマンドです。普通にテキストエディタで編集するときと違い、終了時に構文上の間違いを指摘してくれます。
Debian 6.0のデフォルトエディタは、nanoを使用。
/etc/sudoersファイルの下から3行目あたりに、%sudo ALL=(ALL) ALLという一行があることを確認できたら、何もせずにnanoを終了。グループsudoにすべての実行権限が付与されていることが分かったので、ユーザーhoge(Debianインストール時に設定したユーザー名)をsudoグループに追加します。
/usr/sbin/usermod -G sudo hoge
なお、/etc/sudoersに別のグループに実行権限を付与して、そのグループにユーザーhogeを追加することも可能です。どんなグループが存在するかは、catコマンドなどで、/etc/groupファイルを開いて確認します。
sshのインストールとポート番号の変更
sudoコマンドが正常に機能することを確認した後、リモートコンソール上から次の要領でSecure Shellパッケージをインストールします。
sudo aptitude install ssh
続いて、ローカルのPCのターミナルから次の要領でsshコマンドを打ち込みます。
ssh ユーザー名@ホスト名
例えば、さくらのVPSホスト名がwww123.sakura.ne.jp、Debianインストール時に設定したユーザー名がhogeの場合、は次のようになります。
ssh hoge@www123.sakura.ne.jp
上記のsshコマンドを打ち込んだ直後、パスワードを訊かれるので、さくらインターネットから送付されたログイン情報に記載されたパスワードを打ち込みます。
ローカルPCのコンソールから無事にログインできたら、先ずはポート番号の変更を行います。viやnanoなど、好みのテキストエディタで/etc/ssh/sshd_configを編集します。
例えば、ボート番号22を4321に変更する場合、該当個所(上から5行目あたり)を次のように変更します。
Port 4321
さらに、SSH接続でrootに直接ログインすることを禁止しておきます。
PermitRootLogin no
以上で、変更を保存して、/etc/ssh/sshd_configの編集を終了し、sshを再起動。
sudo /etc/init.d/ssh restart
ここで、exitコマンドを実行して、さくらのVPSから一旦ログアウトし、再度sshでログインします。ポート番号を変更しているので、-pオプションを付与して、ポート番号を指定します。
ssh hoge@www123.sakura.ne.jp -p 4321
公開鍵認証方式でのssh接続の設定
続いて、公開鍵認証によるssh接続を設定します。
さくらのVPSにリモートログインしている状態で、ホームディレクトリ内に.sshフォルダを作ります。
mkdir .ssh
次に、ローカルPCでターミナルから、ssh-keygenコマンドを打ち込みます。
ssh-keygen
Enter file in which to save the key (/home/hoge/.ssh/id_rsa):
デフォルトの秘密鍵のファイル名と場所は、/home/hoge/.ssh/id_rsaとなっています。このファイル名で問題なければ、何も入力せずにエンターキーを押します。
続いて、パスワードを設定するかどうか問われるので、これは必ず設定しておきます。
これで、ローカルPCのホームディレクトリに.sshというフォルダが作成され、その中にid_rsaとid_rsa.pubのファイルが作成されます。id_rsaが秘密鍵で、id_rsa.pubが公開鍵です。
公開鍵認証方式の場合、ローカルPCに秘密鍵を置き、リモートサーバーに公開鍵を置くことで、安全な通信を実現できるわけです。
公開鍵を送信する場所は、さくらのVPSの.sshフォルダ内で、ファイル名はauthorized_keysとしておきます。安全に公開鍵を送信するため、scpコマンドを利用します。
scp -P 4321 .ssh/id_rsa.pub hoge@www123.sakura.ne.jp:~/.ssh/authorized_keys
さくらのVPSからログアウトする前に、/etc/ssh/sshd_configをテキストエディタで開き、次の項目をチェックしておく。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
なお、さくらのVPSの.ssh内に作成するファイル名をauthorized_keysとしましたが、上記のAuthorizedKeysFile項目で設定すれば、名称や場所は自由に変更できます。
また、このauthorized_keys(又はAuthorizedKeysFileで定義したファイル名)には、複数の公開鍵を記入できます。
最後に、sshを再起動させれば、設定は完了です。
sudo /etc/init.d/ssh restart
次回からのリモートログインは、次のようになります。
ssh hoge@www213.sakura.ne.jp -i .ssh/id_rsa -p 4321