さくらのVPS を改めて使いはじめる 1 – 使用準備、SSH 公開鍵認証

2012年4月15日 26 開発 , , , ,

これまで運用してきたブログと趣味の開発用サーバーを、この春はじまった「さくらのVPS 2GB」プランに集約することにしたので環境構築の手順を記録してゆく。

ブログは既に移行しており本記事は新サーバー上で公開している。開発用サーバーについては Ruby 1.9 系に対応するという Redmine 1.4 待ちだったが 4/14 にリリースされたようなので、これから構築する予定。

基本的な構築の流れは 2 年ほど前に書いたさくらのVPS を使いはじめるシリーズを踏襲する。ただしデフォルトの OS が CentOS 5.x から 6.2 へ更新されていたり WordPress ブログを移管するため、差分は多くなるかもしれない。

もくじ

さくらのVPS 2GB を契約した動機

これまでブログをさくらのレンタルサーバ スタンダード、開発用サーバーはさくらのVPS 512MB で運用していた。

管理するサーバーが複数あるのは面倒で金銭的にもったいないため、以前からこれらを VPS 側へ集約したいと思っていた。しかし VPS のスペックがいまひとつなのとブログで利用してきたドメイン akabeko.sakura.ne.jp を維持できないが気になり、二の足を踏み続けてた。

そんなこんなで迎えた 2012 年の春、「さくらのVPS」リニューアルのお知らせが発表された。

新プランの 2GB はこれまで利用してきた環境と比較して総合的にスペックが上である。そのうえ金額は 1,480 円。これはちょうど、さくらのレンタルサーバ スタンダード 500 円 と旧さくらの VPS 512MB の 980 円を足した額になる。

まさに移行にうってつけではないか!というわけでサービス受付初日となる 2012/3/29 に即、契約。

私が利用しているプランのスペックを比較すると以下のようになる。さくらのレンタルサーバについては 1 台のサーバーを複数ユーザーが共有するので実際のスペックはもっと下がるはず。

VPS 2GB VPS 512MB レンタルサーバ スタンダード
初期費用 1,980 円 0 円 1,000 円
月額料金 1,480 円 980 円 500 円
メモリ 2GB 512MB 3.25GB
CPU 仮想 3 コア 仮想 2 コア 2 コア
HDD 200GB 20GB 10 GB

ブログ移転でドメインを維持できなくなる点については目をつぶることにした。

そもそも akabeko.sakura.ne.jp は、さくらのインターネットの提供するサブドメインなので固執する意義が薄い。むしろこのままリンクが集まり続けたら移行の枷は重くなるばかりである。

というわけで akabeko.sakura.ne.jp はあきらめて新たに akabeko.me という独自ドメインを取得することにした。

余談だが、私のハンドル名であるアカベコは偶蹄目なので本当は .mo ドメインにして akabeko.mo にしたかったのだけど .mo は維持費がけっこう高いため .me で妥協。

用意するもの

サーバー上で作業をおこなうため、まずは SSH クライアントを用意する。Windows なら TeraTerm、Mac の場合は標準のターミナルを利用する。

ファイルの送受信については SSH クライアントを利用してもよいのだが SFTP をサポートした GUI クライアントがあると便利。Windows だと WinSCP、Mac では Cyberduck あたりが定番か。どちらもツリー ビューをサポートしているので、ファイラーとしても扱いやすい。

WinSCP にはインストーラ版とポータブル版が用意されている。インストーラー版の場合、PuTTYgen という便利ツールも一緒に入れてくれるので選ぶならこちらを推奨。

サーバーの起動とコントロールパネル

VPS を契約すると「[さくらのVPS] 仮登録完了のお知らせ」というメールが送られてくる。その中には以下のような部分がある。

《VPSコントロールパネル ログイン情報》 VPSコントロールパネルでは、仮想サーバのリセットやリモート コンソールでの接続、OSの再インストールなどを行うことができます。 URL : https://secure.sakura.ad.jp/vpscontrol/ IPアドレス: XXX.XXX.XXX.XXX パスワード: XXXXXXXXXXXXXXXXXXXXXXXX

URL は VPS のコントロールパネルにログインするためのページ。アクセスすると IP アドレスとパスワードの入力欄がある。入力してログインするとコントロールパネルに移動するので「起動」ボタンを押す。

少し待ちステータス欄の「更新」ボタンを押すと欄内の表示が稼働中に変わる。これでサーバーが起動した。サーバーの停止と再起動もこのページからおこなえる。

VPS コントロールパネル

コントロールパネルには他にもリモートコンソールや OS 再インストール機能が用意されている。

リモートコンソールリモートコンソールは JavaScript で作られたブラウザ上のコンソールで、TeraTerm などを用意しなくてもここからサーバーにログインしてコマンド実行をおこなえる。

リモートコンソール

コンソール上部のタイトル右にあるアイコンからクリップボードの内容も貼りつけられる。応答性もよい。

このコンソールは SSH でパスワードによるログインを禁止していても関係なくログインできるので注意が必要である。ただし iptables などの Firewall で自分の作業しているネットワーク環境の IP アドレスを間違って遮断してしまったとか、そういうトラブルのときは役立つ。

サーバーの設定をいじっている内に不安定になったり起動不能になったときは OS 再インストール を利用することで、サーバーを初期状態に戻せる。

OS再インストール

root のパスワードを入力して「確認」ボタンを押すと再インストールできる。前に試してみたところ 5 分もかからずに完了した。どのような仕組みになっているのか謎なのだが root のパスワードを変更していた場合、再インストール後の環境にも引き継がれる。

OS 再インストール画面からカスタム OS インストールを選ぶと標準の CentOS 以外でセットアップ可能。OS だけで 6 種、さらにバージョンやプラットフォームの違いを含めると 14 種類ものパターンがある。

カスタム OS インストール

root のパスワード変更とユーザー作成

サーバーを起動できたら、さっそくログインしてみよう。初期状態では root ユーザーだけが存在し、さくらインターネットから送られてきたメールに書かれていた初期パスワードが設定されている。しかしメールにも警告されているよう、これは危険なので真っ先に変更する。

TeraTerm を起動して「新しい接続」ダイアログに IP アドレスを入力し、OK ボタンを押す。次の「SSH 認証」ダイアログではユーザー名に root、パスフレーズへ初期パスワードを入力して OK ボタンを押す。入力内容が適切なら、これでログインがおこなえる。

passwd コマンドを実行すると、新しいパスワードと確認の計 2 回、入力を求められる。成功すると以下のようになる。

# passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

私は以前このブログで紹介したサービスでパスワード生成している。しかし複雑なパスワードは入力難度が高いためクリップボードにコピーして貼りつけている。TeraTerm の貼り付けは Alt + V か、メニューから「編集」→「貼り付け」で実行可能。パスワードは KeePass で管理しており必要なときだけコピペするようにしている。

root のパスワードを変更したが管理的に考えて、通常の操作は root 以外のユーザーでおこない必要なときだけ特権を委譲してもらうのが好ましい。

というわけで次は作業用のユーザーを用意する。useradd コマンドでユーザー作成して passwd コマンドでパスワードを設定する。成功すると以下のようになる。

# useradd test
# passwd test
Changing password for user test.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

ここで TeraTerm のメニューから「ファイル」→「新しい接続」を選び、いま作成したユーザーでログインできることを確認しておく。

Mac の場合

Mac で SSH 接続する場合は、ターミナル.app を起動し、ssh コマンドを実行する。

$ ssh root@XXX.XXX.XXX.XXX -p 22

@ の前がユーザー名、後の XXX.XXX.XXX.XXX が接続先の IP アドレスとなる。既に IP アドレスと関連づけたドメインがあればそれを指定してもよい。

-p パラメータに指定された数字は接続するポート番号である。省略時は既定の 22 が選ばれる。いずれ安全のためにポート番号を変える予定なので、この形式で変更可能なことを覚えておこう。

接続後の作業は VPS 上でおこなうため、手順は Windows と一緒。

SSH 接続用の鍵を作成する

さきほど root と作業用ユーザーにパスワードを設定したが、これは最低限のセキュリティ対策である。

そもそもパスワードでログインすることが好ましくない。いくらパスワードを複雑にしても、それが割れたらどこからでもログインされてしまう。

そこで SSH 接続には公開鍵認証を利用する。

これはサーバーに公開鍵を置きクライアントはそれに対応した秘密鍵で接続を認証する、というものである。認証に鍵を用いるため秘密鍵ファイルを参照可能な環境からしかログインできない。

鍵を使用するユーザーの限定とパスフレーズ設定により、秘密鍵ファイルが漏洩したときの対策もおこなえる。さっそく鍵を作成してみよう。

前に作成したときは PuTTYgen を利用したが今回は TeraTerm ( Windows )ターミナル ( Mac ) を使用する。

TeraTerm による鍵の生成

TeraTerm を起動すると「新しい接続」ダイアログが表示されるのでキャンセル ボタンを押してダイアログを閉じる。

次にメイン メニューから「設定」→「SSH鍵生成…」を選ぶ。すると以下のダイアログが表示される。生成ボタンを押して鍵を生成する。

SSH 鍵生成

鍵が生成されたら、それを保護するためのパスフレーズを設定する。入力欄は設定と確認用のふたつ。ある程度、複雑なパスフレーズを指定すること。

パスフレーズの入力

パスフレーズを入力したら「公開鍵の保存」と「秘密鍵の保存」ボタンを押して鍵ファイルをローカルに保存する。公開鍵は id_rsa.pub、秘密鍵は id_rsa というファイル名にしておく。

Mac の場合

ターミナルを起動して ssh-keygen コマンドを実行。

$ ssh-keygen

コマンドを実行すると鍵ファイルの名前とパスフレーズをたずねられる。ファイル名は id_rsa、パスフレーズはある程度、複雑なもの ( 4 文字以下だとエラーになる ) を入力しておく。

生成に成功すると以下のような出力がおこなわれるはず。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/XXXXXXXX/.ssh/id_rsa): id_rsa              
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
6a:47:23:9c:e4:33:1f:7d:4b:0f:87:d7:66:8b:68:b1 XXXXXXXX@XXXXXXXX-MacBookAir.local
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|      .          |
|     + . .   . . |
|      B S ..= o +|
|       B o o+*.o.|
|      o o  E.... |
|     . .  .      |
|                 |
+-----------------+

これで /Users/XXXXXXXX/.ssh に 公開鍵 id_rsa.pub と秘密鍵 id_rsa が作成された。秘密鍵のほうは他のユーザーに見られないよう、パーミッションも変更しておく。ターミナルから以下のコマンドを実行する。

$ cd
$ cd .ssh
$ chmod 600 id_rsa

サーバーの SSH 設定を変更

はじめに公開鍵認証でログインしたいユーザーの HOMEへ公開鍵ファイルとなる id_rsa.pub を送信する。TeraTerm ならサーバーにログインした状態でウィンドウにファイルをドロップすれば、そのユーザーの HOME にコピーされる。

Mac では scp コマンドで転送する。id_rsa.pub が Mac 側のユーザー HOME 以下の .ssh ディレクトリにある場合、実行するコマンドは以下のようになる。

$ cd
$ cd .ssh
$ scp -P 22 id_rsa.pub XXXX@XXX.XXX.XXX.XXX:

-P パラメータでポート番号を指定、@ の前後にユーザー接続先。そのあとに : を付けてサーバー上の転送先ディレクトリを指定する。未指定の場合は HOME に転送される。転送できたらサーバーにログインし、以下のようにコマンドを実行してゆく。

$ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

ユーザーの HOME に .ssh ディレクトリを作成し、その中に公開鍵を authorized_keys という名前で配置している。他のユーザーから読み取られないよう、ディレクトリのパーミッションを 700、公開鍵ファイルは 600 としている。これで公開鍵の準備は完了。

次はいよいよ、SSH の設定変更である。

変更には管理者権限が必要なので、su コマンドで root になる。ちなみに通常のユーザーと管理者は、プロンプト先頭の文字で見分けられるようになっている ( シェルによるのかもしれないが )。プロンプトが $ なら通常ユーザー、# は管理者となる。

$ su -
Password:
#

次に /etc/ssh/sshd_config を編集する。vi コマンドで設定ファイルを開く。

# vi /etc/ssh/sshd_config

vi エディタの使い方については、以下のページあたりが参考になる。

ファイルを開いたらPermitRootLogin ( root のログイン )PasswordAuthentication ( パスワードによるログイン )no に設定する。書式は設定名の後に yes で有効、no で無効、行頭に # でコメントアウトとなる。例えば、以下のように書く。

#PermitRootLogin yes
PermitRootLogin no

... 中略 ....

#PasswordAuthentication yes
PasswordAuthentication no

編集して保存したら SSH デーモンを再起動する。

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

設定に誤りがあればエラーメッセージが表示されるので修正する。ここまでの手順がすべて適切ならば以降はパスワードログインが禁止され、秘密鍵の参照が必須となる。例えば TeraTerm の SSH 認証なら以下のようになる。

TeraTerm の SSH 公開鍵認証

コンソールの日本語化

初期設定の一環としてコンソールを日本語化しておく。この設定を格納している /etc/sysconfig/i18n を vi で開く。

$ su -
Password:
# vi /etc/sysconfig/i18n

すると以下のような内容になっているので、

LANG="C"
SYSFONT="latarcyrheb-sun16"

LANG の内容を以下のように編集する。

LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"

編集したら保存して、再ログインするとメッセージが日本語化される。例えば ls -l を実行したときの内容を比べると、初期状態では、

$ ls -l
total 36
-rw-r--r-- 1 root root 33726  9月 15 22:30 httpd.conf

となっているが、日本語化されると以下のように「total」という表記が「合計」に変わる。

$ ls -l
合計 36
-rw-r--r-- 1 root root 33726  9月 15 22:30 httpd.conf

日本語版のマニュアルが用意されているコマンドなら、man コマンドによる表示も日本語化されるので便利だと思う。

システムの更新

今回の仕上げとしてシステムの状態を最新へ更新しておく。これはいわば Windows Update のようなもので定期的に実行することになるだろう。

更新には yum というコマンドを使用する。実行は root になるか sudo を利用する。今はまだ sudo を設定していない ( 次回におこなう予定 ) ので root からおこなう。

yum コマンドを実行すると、はじめにダウンロードするパッケージ一覧とサイズが表示される。ダウンロードの実行を問い合わせられるので、y と入力して Enter。初回なら GPG キーをインポートするという問い合わせがあるので、これも y と答えて Enter を押す。

yum に -y オプションを指定すると問い合わせに y と答えたことにしてスキップできる。N を選ぶことは滅多にないが、キャンセルしたいことがあるかもしれないので私はスキップさせず常に問い合わせを受けるようにしている。

$ su -
Password:
# yum update

...
Install       2 Package(s)
Upgrade      16 Package(s)

Total download size: 34 M
Is this ok [y/N]: y

しばらく待ってアップデート完了。

…今回はここまで。次回は SSH のポート変更と sudo の指定について書く予定。

さくらのVPS を使いはじめる

2010年9月12日 35 開発 , , , , ,

ちまたで話題になってるさくらのVPS を使いはじめた。

月額 980 円で root 権限あり、個人用途なら十分に実用的となれば、契約しない手はないだろう。ちょうど Redmine を動かすために root 権限が欲しいなあと思っていた ( Passenger を利用したい ) ので、これはまさに渡りに船である。

また、これまで Linux 学習用に VMware Player と CentOS を利用していたのだが、さくらのVPS も CentOS なので、この用途も引き継げそうだ。ゼロから実働するサーバー環境を整えることで、得られるものも多いだろう。

というわけで、さくらのVPS を使ってゆきながら、作業メモを残してゆく。VPS を再インストールしたときにも、このメモが役立つかもしれない。長くなることは確実なので、記事は数回に分ける予定。

シリーズまとめ – さくらのVPS を使いはじめる

もくじ

用意するもの

サーバーでおこなう作業のために、まずは SSH クライアントを用意する。私の場合はコマンド操作に TeraTerm、ファイルの送受信に WinSCP を利用している。この記事は、これらを利用しているものとして書く。

ファイル編集に関して Windows 中心でゆきたいなら WinSCP がとても役立つ。

ドラッグ & ドロップによるファイルの送受信や、ダブルクリックでサーバー上のファイルを開き、そのまま Windows 上で編集できる ( 正確には Windows 上に一時ファイルを作成し、更新されたらサーバーに送信している ) のが便利である。

尚、WinSCP にはインストーラ版とポータブル版が用意されているのだが、インストーラー版は PuTTYgen という便利ツールも一緒に入れてくれるので、こちらを強く推奨する。この記事でも PuTTYgen を RSA の鍵作成に利用する。

サーバーの起動とコントロールパネル

VPS を契約すると「[さくらのVPS] 仮登録完了のお知らせ」というメールが送られてくる。その中には以下のような部分がある。

《VPSコントロールパネル ログイン情報》 VPSコントロールパネルでは、仮想サーバのリセットやリモート コンソールでの接続、OSの再インストールなどを行うことができます。 URL : https://secure.sakura.ad.jp/vpscontrol/ IPアドレス: XXX.XXX.XXX.XXX パスワード: XXXXXXXXXXXXXXXXXXXXXXXX

URL が VPS を管理するためのコントロールパネルのログイン ページを示している。アクセスすると IP アドレスとパスワードの入力欄があるので、それぞれ入力してログインをおこなう。するとコントロールパネルのページに移動するので、「起動」ボタンを押す。

少し待ち、ステータス欄の「更新」ボタンを押すと、欄内の表示が稼働中に変わる。これでサーバーが起動した。サーバーの停止と再起動も、このページからおこなえる。

VPS コントロールパネル

コントロールパネルには、他にもリモートコンソールや OS 再インストール機能が用意されている。

リモートコンソールは JavaScript で作られたブラウザ上のコンソールで、TeraTerm などを用意しなくても、ここからサーバーにログインしてコマンド実行をおこなえる。

リモートコンソール

コンソール上部の「リモートコンソール」というタイトル右のアイコンからクリップボードの内容も貼り付けられる。応答性もよい。尚、このコンソールは SSH でパスワードによるログインを禁止していても、関係なくログインできるので注意が必要である。

サーバーの設定をいじっている内に不安定になったり、起動不能になったときは OS の再インストールを利用することで、サーバーを初期状態に戻せる。

OS再インストール

root のパスワードを入力して「確認」ボタンを押すと、再インストールをおこなえる。試してみたところ、5 分もかからずに完了した。どのような仕組みになっているのか謎なのだが、root のパスワードを変更していた場合、再インストール後の環境にもそれが引き継がれる。

root のパスワード変更とユーザー作成

サーバーが起動したら、さっそくログインしてみよう。初期状態では root ユーザーだけが存在し、さくらインターネットから送られてきたメールに書かれていた初期パスワードが設定されているのだが、メールにも警告されているように、これは真っ先に変更する。

また、UNIX 系 OS では、通常のユーザーでログインし、root 権限が必要なときは sudo コマンドで特権を委譲してもらうか、su コマンドで一時的に root となるのが一般的である。基本は sudo、root 権限が必要な作業が大量にあるときだけ 万全の注意を払い root になるのがよいだろう。どちらにせよ、root 以外に必ずユーザーを作成する。

TeraTerm を起動して「新しい接続」ダイアログに IP アドレスを入力し、OK ボタンを押す。次の「SSH 認証」ダイアログではユーザー名に root、パスフレーズへ初期パスワードを入力して OK ボタンを押す。入力内容が適切なら、これでログインがおこなえる。

まずは root のパスワードを変更する。passwd と入力して Enter キーを押すと、新しいパスワードと確認の計 2 回、入力を求められる。成功すると以下のようになる。

# passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

私の場合、以前このブログで紹介したサービスでパスワードを生成しているのだが、ランダムな文字列で入力難度が高いので、クリップボードにコピーして貼り付けている。尚、TeraTerm の貼り付けは Alt + V か、メニューから「編集」→「貼り付け」を選ぶことでおこなる。パスワードそのものは KeePass というツールで管理しており、必要なときだけ取り出すようにしている。

次に、普段の作業をおこなうユーザーを作成する。これは useradd コマンドでおこなう。作成したなら、すぐにパスワードを設定する。これは先ほど使用した passwd コマンドにユーザー名を指定することでおこなる。成功すると以下のようになる。

# useradd test
# passwd test
Changing password for user test.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

ここで TeraTerm のメニューから「ファイル」→「新しい接続」を選び、さきほど作成したユーザーでログインできることを確認しておく。

SSH 接続用の RSA 鍵を作成する

パスワード設定だけでは安全性に不安があるので、次は RSA 公開鍵認証を設定し、パスワードログインを禁止する。まず PuTTYgen を起動する。WinSCP をインストールしているならば、スタートメニューから「すべてのプログラム」→「WinSCP」→「鍵関連ツール」→「PuTTYgen」を選ぶ。

PuTTYgen

起動したら、ウィンドウ下部のラジオボタンから「SSH-2 RSA」を選択し、「Number of bits in a generated key」欄に 2048 と入力 ( 初期値は 1024。これは鍵のビット数で多いほど強度が高い ) してから「Generate」ボタンを押す。

すると鍵の生成が開始され、プログレスバーが表示される。

だが、眺めているだけだと一向に進まない。画面には Please generate some randomness by moving the mouse over the blank area. とある。プログレスバーの下あたりでマウスカーソルをグリグリと動かすとバーがモリモリ進みはじめるので、完了するまで動かし続ける。

RSA 鍵の生成

鍵の生成が完了すると、以下の画面になるので「Key passphrase」欄と「Confirm passphrase」欄に RSA 鍵を暗号化するためのパスフレーズを設定する。必須ではない。鍵自体が盗まれるような状態では、パスフレーズなんて気休めにしかならないという意見もあるので、そう思うなら設定しなくてもよい。私は設定する派である。

RSA 鍵が生成された状態

ここまでで鍵の生成と設定が完了したのでファイル化する。

「Save private key」ボタンを押して秘密鍵ファイルid_rsa という名前で保存する。 拡張子は .ppk なので id_rsa.ppk というファイルが作成される。

次に秘密鍵ファイルを保存したフォルダに id_rsa.pub という名前のテキストファイルを作成し、メモ帳などで開き、PuTTYgen の「Public key for pasting into OpenSSH authorized_keys2 file」欄に表示されているテキストをコピーして貼り付けて保存する。

内容は以下のような感じになる。末尾は鍵の生成日時になるようだ。必ず 1 行になるので改行が入っていたら消しておく。これが公開鍵ファイルとなる。

"ssh-rsa ...中略... rsa-key-20100909"

最後に、TeraTerm 用の秘密鍵ファイルを作成する。PuTTYgen のメインメニューから「Conversions」→ 「Export OpenSSH key」を選択して id_rsa という名前で保存する。拡張子はない。

ここまでの手順を終えると、以下のファイルが作成されるはず。

ファイル名 種類 内容
id_rsa.pub 公開鍵 RSA 公開鍵。サーバー側に置く。
id_rsa.ppk 秘密鍵 RSA 秘密鍵。WinSCP や PuTTYgen で利用。
id_rsa 秘密鍵 OpenSSH 用 RSA 秘密鍵。TeraTerm などで利用。

もし公開鍵や OpenSSH 用の秘密鍵を保存し忘れても、PuTTYgen で .ppk ファイルを開けば鍵を生成した状態に戻れるので、再度、保存すればよい。

サーバーの SSH 設定を変更

TeraTerm からサーバーに RSA 認証をおこないたいユーザーでログインする。root ではないので注意する。そしてそのユーザーの HOME 直下に .ssh というディレクトリを作成する。コマンドの流れとしては以下となる。

$ cd $HOME
$ mkdir .ssh
$ chmod 700 .ssh

ログインした時点で HOME にいるはずだが、念のため移動してからディレクトリを作る。パーミッションは 700 ( 自分だけ読み書き可能 ) にしておく。

次に WinSCP から同じユーザでログインし、作成した .ssh ディレクトリ内に RSA 公開鍵となる id_rsa.pub を送信する。そしてファイル名を authorized_keys に変更してパーミッションを 600 にする。名前の変更とパーミッション設定のコマンドは以下。

$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

これで鍵の配置は完了。残りは SSH デーモンの設定変更となるので、su コマンドを実行して root になる。

$ su -
Password:
#

次に /etc/ssh/sshd_config を編集する。この時点では root でパスワードログインできるので、vi に馴染んでいないなら WinSCP から開いて Windows 上のテキストエディタで編集してもよい。

PermitRootLogin ( root のログイン ) と PasswordAuthentication ( パスワードによるログイン ) を no に設定する。書式は設定名の後に yes で有効、no で無効、行頭に # でコメントアウトとなる。例えば、以下のように書く。

#PermitRootLogin yes
PermitRootLogin no

... 中略 ....

#PasswordAuthentication yes
PasswordAuthentication no

編集して保存したら、SSH デーモンを再起動する。

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

設定に誤りがあれば、コマンド実行時にエラーメッセージが表示されるので修正する。ここまでの手順がすべて適切ならば、以降はパスワードログインが禁止され、RSA 鍵の参照が必要となる。例えば TeraTerm の SSH 認証なら、以下のようになる。

TeraTerm の SSH 認証

システムの更新

RSA 鍵でログインできるようになったら、最後にシステム更新をおこなっておく。これはいわば Windows Update のようなもので、定期的に実行することになるだろう。

更新には yum というコマンドを使用する。実行は root になるか sudo を利用する。今はまだ sudo を設定していない ( 次回におこなう予定 ) ので root からおこなう。

コマンドを実行すると、はじめにダウンロードするパッケージ一覧とサイズが表示され、ダウンロードの実行を問い合わせられるので、y と入力して Enter を押す。

$ su -
Password:
# yum update

...
Install       2 Package(s)
Upgrade      16 Package(s)

Total download size: 34 M
Is this ok [y/N]: y

次に、GPG キーをインポートするという問い合わせがあるので、これも y と答えて Enter。

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
updates/gpgkey                                                                                           | 1.5 kB     00:00
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y

しばらく待ってアップデート完了。

…今回はここまで。