DebianサーバーにsudoとOpenSSHを設定する

さくらの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
 
タイトルとURLをコピーしました