IMPOV::In My Point Of View

仕事、SEO、ウェブマーケティング、時事問題、健康、生き方などなど、書きたいことを勝手に書き倒しているブログです。とどのつまり「便所の落書き」

ログインアカウントの作成からSSH鍵の設定まで(初心者がさくらのVPSを立ち上げるまで - その3)

ログイン

以下のページを参考にしながらやると良い。

ドットインストールはMac、Sakura VPS 設定マニュアルはWindows

自分の環境はWindowsなので、TeraTermを使用する。TeraTermはパスワードの入力が毎回とてもメンドウなので、設定作業が終わるまでの間は、マクロを作ってデスクトップにでも置いておくと良い。*1テキストファイルに以下のマクロをコピー・ペーストして、必要な情報を書き込み、拡張子ttlにして保存すれば良い。あとはこのマクロファイルをダブルクリックするだけで簡単につながる(はずだ)。
TeraTerm パスワードログイン用のマクロ【再掲】

HOSTADDR = 'IPア.ドレス.を入.れる' 
USERNAME = 'root' 
PASSWORD = 'さくらから通知された初期パスワード' 

COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
connect COMMAND

end

ひと通りの鍵認証までの作業が終わったら、このマクロは削除するか、どっか別の場所に移動させておくのが良いだろう。

OSしか入っていないとは言うものの ”万が一” があると困るので、VPSコントロールパネルからサーバーを起動させたなら、出来る限り早く最低限の壁を建ててしまうべきだ。途中で長時間の中断をする場合は、コントロールパネルからサーバーを強制停止しておこう。

yum update

yum(ヤム)は、Windowsでいえば、Windows Updateにあたる機能でアプリケーションのインストールやアップデートを行ってくれる便利ツールだ。

まず最初に、yum update でデフォルトの環境を最新の状態にする。

yumのエラー

何かの都合で「OS再インストール」をコントロールパネルから行った後に yum update を行うと以下のエラーが出る場合がある。*2

Error: Cannot retrieve repository metadata
Could not retrieve mirrorlist

こんな事になってしまった時は、慌てず以下のコマンドを打ち込むとよい。

yum clean all

再インストールしたにもかかわらず、何かの都合で yum の古い情報が残ってしまっていたり壊れてしまっているのを消去するコマンドだ。

レポジトリの追加

また、yum は、レポジトリ*3にファイルのバージョンを確認して取りに行くのだが、そのレポジトリを複数ヶ所登録することができる。基本的に必要なレポジトリは既に登録されているが、以下の2つのコマンドを打ち込んで更に追加登録しておくと後々便利だ。*4

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

言語設定とユーザー作成

あとはドットインストールの動画にあるとおり、日本語化と作業用ユーザーの作成をする。
作業用ユーザーを作ったら、TeraTermのマクロも作用用ユーザー用のものを用意しておくと便利だ。

鍵認証

#06 鍵認証を設定しよう (1) | さくらのVPS入門 - プログラミングならドットインストール
ドットインストールの動画はマック用なので、鍵認証についての動画をひと通り見て概要を押さえた後、鍵認証の設定 | 初心者でもわかる!さくらVPS | Sakura VPS 設定マニュアルのページを見て全体的な流れを把握しておく。

両方共PCのツールを使って鍵を作成しているので、これをこのまま行っても良いが、VPSサーバー側の機能を使用して鍵を作ることもできる。以下がその作業手順だ。

1.先ほど作った作業用ユーザーでログイン*5
2.ユーザーのホームディレクトリへ移動しディレクトリを作る。
cd $HOME    #ルートへ移動
mkdir .ssh  #ディレクトリの作成
chmod 700 .ssh  #権限変更
3.root権限に移り、さらに作業用ユーザーに移る*6
su -     #rootアカウントのパスワード入力を求められる
su 作業用ユーザー名   #作業用ユーザーに移る

これで、作業用ユーザーの上にrootが乗っかって更にその上に作業用ユーザーが乗っかった状態ができあがる。

4. 鍵の作成

以下のとおりのコマンドを打ち込む

ssh-keygen -t rsa   #以下の二行が表示されるので、パスフレーズを設定する。
  Created directory ‘/home/ユーザー名/.ssh’.
  Enter passphrase (empty for no passphrase): (パスフレーズを入力)
5.できあがった鍵のファイル名を変更する
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
6.鍵ファイルをダウンロードする。

TeraTermのメニューから、[ファイル]-[SSH SCP...] を選択し、Recieve 欄でファイルをダウンロードすることが可能だ。

鍵ファイル名とその場所は、/home/[ユーザー名]/.ssh/id_rsa だ。

使い慣れていない場合は、Filezillaなどを使用してSFTPアクセスをしてもよい。*7

SFTPクライアントによる接続をする場合は、作業用ユーザー名とそのパスワードでログインする。*8

鍵を無事に取り出せたら、サーバー上の鍵は削除しておこう。

rm /home/[ユーザー名]/.ssh/id_rsa

(注) あなたが極めて重要な機密を扱うような立場であるのなら、これらの鍵の作成は参考2サイトにあるようなローカルPCを使って行うべきだ。しかし、あなたがただの普通の人であるのならサーバーを使って鍵を作っても問題ないだろう。
厳密にセキュリティを管理するのであれば、サーバーに置いた[authorized_keys]は接続する側のあなたの公開鍵なのでウェブ上にあっても問題ないのだが、一方の秘密鍵はいかなる形であれインターネット上の通信にのせるのは非推奨とされる行為だということぐらいは知っておこう。

その他の設定ファイルの変更などについては、前出の参考2サイトの通りにやれば良い。

鍵認証によるログイン

ダウンロードした鍵を使ってTeraTermでアクセスを行う。

これもマクロに登録してしまおう。(再掲)

HOSTADDR = 'IPア.ドレス.を入.れる' 
USERNAME = 'ユーザー名' 
PASSWORD = '鍵を作成するときに入力したパスフレーズ' 
KEY_FILE = 'C:\(キーファイルが保存されているフォルダ)\id_rsa'
PORTNUM = '自分で設定したポート番号'

COMMAND = HOSTADDR 
strconcat COMMAND ':'
strconcat COMMAND PORTNUM 
strconcat COMMAND ' /ssh /2 /auth=publickey /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD 
strconcat COMMAND ' /keyfile=' 
strconcat COMMAND KEY_FILE
 
connect COMMAND
 
end

このマクロをダブルクリックすれば、作成したログインアカウント(作業用アカウント)でアクセスできるはずだ。

余談

自分は、いまから30余年ほど前に個人向けのPC*9が発売された頃から触っているので、黒い画面に白や緑の文字がダラダラと流れるいわゆるCUIにはまだなんとか対応できるのですが、それでもついついマウスに手が伸びてしまい、この作業を始めた最初の頃は結構フラストレーションがたまりました。

それを考えると、Windows3.1以降のGUI世代には、TeraTermでログインした時点で、なんだかすごいメンドウな世界に入り込んだ感が強いだろうなと思います。頑張ってなれるしかないですよね。

ブラウザを介したGUIツールのインストールは、便利さと脆弱性とのトレードオフでもあるので*10、なるべくCUIでいろいろな事ができるようになりたいものです。

目次

一連の記事の目次は、以下のページにあります。
初心者がさくらのVPSを立ち上げるまで - その1

*1:言わずもがなだが共用PCでは、そんなことをしてはいけません。

*2:自分の場合、2回も再インストールしたのだが、最初のインストールの際にこの状態になった。

*3:プログラムなどの保管場所

*4:rpmもプログラムをレポジトリから取ってくるためのコマンドだが、最初のうちはあまり深く考えずに yumレポジトリを拡張するとだけ思っておけば良いだろう。

*5:TeraTermのマクロを作ってあると便利

*6:ルート権限を持った作業ユーザーになることで、作業ユーザーが所有者の鍵を作業ユーザーのディレクトリに保存することができるようになる

*7:ついでにサーバーのディレクトリ構造なども直感的にわかるので、このタイミングでFilezillaなどでアクセスするのは意外と良いかもしれない。

*8:そうしないと作業用ユーザーが所有者になっている鍵ファイルを取り出すことができない。

*9:当時はマイコンと呼ばれていた。

*10:phpMyAdminとか後でインストールするので説得力無いですけどね