さくらのVPSを借りて、カスタムOSインストールでDebian 6.0を選択した場合、先ず最初にすべきことは、sudoとOpenSSH(Open Secure Shell)のインストールと設定だろう。
sudoのインストールと設定
Debianのインストールが完了後、さくらのVPSのリモートコンソール上からsuコマンドでスーパーユーザーとなり、sudoパッケージをインストールしよう。
# 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
いったんここでさくらのVPSからログアウト(exitコマンド)して、再度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 $