ちまたで話題になってるさくらのVPS を使いはじめた。
月額 980 円で root 権限あり、個人用途なら十分に実用的となれば、契約しない手はないだろう。ちょうど Redmine を動かすために root 権限が欲しいなあと思っていた ( Passenger を利用したい ) ので、これはまさに渡りに船である。
また、これまで Linux 学習用に VMware Player と CentOS を利用していたのだが、さくらのVPS も CentOS なので、この用途も引き継げそうだ。ゼロから実働するサーバー環境を整えることで、得られるものも多いだろう。
というわけで、さくらのVPS を使ってゆきながら、作業メモを残してゆく。VPS を再インストールしたときにも、このメモが役立つかもしれない。長くなることは確実なので、記事は数回に分ける予定。
続編として、さくらのVPS(v3) 2GB プランへの作業メモ「さくらのVPS を改めて使いはじめる 1 – 使用準備、SSH 公開鍵認証」を書きました。
もくじ
用意するもの
サーバーでおこなう作業のために、まずは 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 アドレスとパスワードの入力欄があるので、それぞれ入力してログインをおこなう。するとコントロールパネルのページに移動するので、「起動」ボタンを押す。
少し待ち、ステータス欄の「更新」ボタンを押すと、欄内の表示が稼働中に変わる。これでサーバーが起動した。サーバーの停止と再起動も、このページからおこなえる。
コントロールパネルには、他にもリモートコンソールや OS 再インストール機能が用意されている。
リモートコンソールは JavaScript で作られたブラウザ上のコンソールで、TeraTerm などを用意しなくても、ここからサーバーにログインしてコマンド実行をおこなえる。
コンソール上部の「リモートコンソール」というタイトル右のアイコンからクリップボードの内容も貼り付けられる。応答性もよい。尚、このコンソールは SSH でパスワードによるログインを禁止していても、関係なくログインできるので注意が必要である。
サーバーの設定をいじっている内に不安定になったり、起動不能になったときは 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」を選ぶ。
起動したら、ウィンドウ下部のラジオボタンから「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.” とある。プログレスバーの下あたりでマウスカーソルをグリグリと動かすとバーがモリモリ進みはじめるので、完了するまで動かし続ける。
鍵の生成が完了すると、以下の画面になるので「Key passphrase」欄と「Confirm passphrase」欄に 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 認証なら、以下のようになる。
システムの更新
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
しばらく待ってアップデート完了。
…今回はここまで。







ピンバック: さくらのVPSに移管完了 | SUSH-i LOG
ピンバック: 炙り〆鯖+男山
ピンバック: さくらVPSを借りてから参考にしたサイト « tech*
ピンバック: さくらVPSでredmine – sirouhashimoto blog [a web developer's Diary]
ピンバック: [さくらのVPS]TeraTermって自動ログインできないの?と思ったらできた | HappyQuality
ピンバック: 知人のさくらVPSが不正アクセスされたようなので自分の設定を見直してみた | のぶろぐ
ピンバック: これでわかる、さくらのVPSをいじる前 | Easy-CUBE
ピンバック: 浜村拓夫の世界
ピンバック: さくらVPSにMacでSSH接続する初期設定 @ Eyes of Bastet
ピンバック: システムの更新とSSHポートの変更 @ Eyes of Bastet
ピンバック: お名前.com+さくらVPSを使い始めた。 | degoo*memo
ピンバック: TM's Workspace - さくらのVPSを借りてみました。
ピンバック: TM's Workspace - さくらVPSのOS再インストールを実行しました。
ピンバック: TM's Workspace - さくらVPSのOS再インストールを実行しました。
ピンバック: TM's Workspace - さくらVPSのOS再インストールを実行しました。
ピンバック: CentOS 初期設定 - ちらうら!
ピンバック: さくらVPSを借りたら設定する事【作業リスト】 | 一騎当千×仕事術
ピンバック: さくらVPSで設定したことまとめ « ymzkmct's blog
ピンバック: Sawalog » MacからさくらVPSにSSH接続できるようにする方法
ピンバック: Log
ピンバック: Play with さくらVPS vii セキュリティ設定その2 | CaCi - Takahiro's Kitchen
ピンバック: さくらVPS借りてみた « 12net.jp
はじめてVPSをさわってみたド素人です。いろいろなサイトを見ながら設定するもどれもチンプンカンプンでしたが、アカベコさんの説明が一番わかりやすく、やっとこのページの終わりまで設定することができました。
ありがとうございます!
ピンバック: さくらvps設定メモ その1 « きょうはなんの映画を見ようかな
ピンバック: github 入門編 Vol.1 とりあえずリポジトリ作るとこまで
ピンバック: Windowsからコマンドラインでsftp ~WinSCP,putty,psftp,~