1
13
2019
ConoHa WINGでサイト構築してみる(初期構築編:その2)
初期ドメインでの運用に必要な各種設定を行う
WEBコンテンツ管理のための接続環境を整える
WEBサーバの環境のチェックが終わったところで、WEBコンテンツの維持管理に必要となるSSHやFTPでの接続、コマンドラインでのWEBサーバへのログイン方法などについて説明しておく.
先ず最初にSSHによるセキュアなサーバ接続が行えるように、SSH接続環境を整備する.”サーバ管理” メニューを開き、サブメニューの “SSH” を開く.初期状態ではキー情報が何も設定されていないので項目は空の状態だ.この状態で、画面右上にある “+ SSH Key” というボタンをクリックすると、次のような入力項目が現れる.
SSHキー(公開鍵、秘密鍵)を設定するための管理画面が現れる
SSHキーの設定はこの場で新規に作成する方法と既存のキーをインポートする2通りの方法が選べるが、今回は新規に自動生成することにする.既存のキーを使うような人達はある意味SSH環境の構築に習熟している人達なので、ここで説明する必要はないだろう.ネームタグにはどのサーバのSSHキーなのかが判るようにきちんと名前を付けておこう.
“保存” ボタンを押すと、”プライベートキーをダウンロードしてください” という内容のダイアログが現れるので、WEBブラウザのダウンロードフォルダに一旦プライベートキーファイル(秘密鍵)を保存しておく.プライベートキーファイルのダウンロードは1回しか行えないので、ダウンロードに失敗したりプライベートキーファイルを亡くした場合は、作成したSSHキーを削除した上で新たに再生成する必要がある.プライベートキーファイルは文字通り秘密にしておかなければならない情報なので、その取り扱いについては細心の注意が必要だ.
自動生成されたSSHプライベートキー(秘密鍵)をダウンロードする
ダウンロードしたファイルは “y2-wing-key-2019-01-13-10-26.pem” のような名前が付いており、只のテキストデータファイルだ.中身を確認したところであまり意味は無いが、参考までにどのような物か実例を示しておく.(当然ながら、絶対秘密にしておかなければならない情報なので、ここで表示する中身はもちろん偽情報)
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKCAQEAtes8tLii7L0cuZ3LVRlaj1ExTnWyJ8ipp5+6vpsF2ea66vEz
JDikje89453jsalfgdf+T2vASUTT4CQ2LcB+scLrDAl0OtMO4oaC+igHKVB99sKZ
IWZsMgXzffRY57OFUw6BGciDvXB16kkocDSMEG1REqCwIVNIQTiw8yvUpQ+QuKOp
途中省略
6l6ne1hAUd8XWc4zlrTTF/9hXOcBmQkNnz4wfbzoRhUgArnOAfNG7TW60Sa0fjKb
dsf389sk/CoeO+2nY56l/dsdsfgr422Hjkds99/dh8k3JqcFEy23
-----END RSA PRIVATE KEY-----
SSH接続するために必要な情報(サーバのDNS名やSSH接続ポート、ユーザID名)を確認しておく.
SSH接続するための情報はこの画面で確認可能だ
以上で、サーバ側でのSSH接続環境の設定は終了で、後はクライアント側でのSSH接続のための設定を行えば良いのだが、クライアント側のSSH接続環境は千差万別なので、ここではMacの “Transmit 5″ によるSFTP接続と”Terminal(ターミナル)” アプリを使ったコマンドラインでのSSHログインの方法について簡単に説明しておく.
SSH秘密鍵の保管
SSH接続には今回行う鍵認証方式以外にもユーザIDとパスワードの組み合わせによる方法も選択することが可能だが、ユーザIDとパスワードによる方法は鍵認証方式よりもセキュリティ的には劣るので、現在では鍵認証方式が推奨されている.ConoHa WINGでも鍵認証方式によるSSH接続となっており、ユーザは秘密鍵を使ってサーバにSSH接続しなければならない.
実は秘密鍵の置き場所については特に決まりはなく、使うアプリケーションや環境によっても異なるので、ユーザが自分で決めるしかないのだが、UNIX/Linux系のOSでは、個人ホームディレクトリ配下に “.ssh” ディレクトリを作成して、その中に秘密鍵やSSH接続で必要となる各種設定ファイルを置くことが一般的だ.この辺の設定に関しては、ユーザのスキルがアップして行くに従って、自分で色々と工夫して行くべき事項なので、とりあえず一つの例として参考にして欲しい.
コマンドラインでの操作に不慣れな人のためにかなり冗長な説明となるが、行っている作業内容はきちんと理解しておいて欲しい.UNIX/Linux系の世界ではMacやWindowsで言うところの”フォルダ”のことを”ディレクトリ”という名前で呼んでいるが、ここでは初心者が馴染みやすいように”フォルダ”という呼び方で統一する.
1. “Terminal(ターミナル)” アプリケーションを起動し、自分のホームディレクトリの構成を確認する
今回は、説明のために新規に “y2” というユーザアカウント(アドミン権限有り)を作成した状態で作業を行った.
Last login: Sun Jan 13 13:16:14 on console
iMac27:~ y2$ ls -la (ホームディレクトリの構成を "ls" コマンドで確認)
total 8
drwxr-xr-x+ 14 y2 staff 448 Jan 13 13:21 .
drwxr-xr-x 8 root admin 256 Jan 13 13:15 ..
-r-------- 1 y2 staff 7 Jan 13 13:16 .CFUserTextEncoding
drwx------ 2 y2 staff 64 Jan 13 13:16 .Trash
drwx------ 3 y2 staff 96 Jan 13 13:21 .bash_sessions
drwxrwxrwx 3 y2 staff 96 Jan 13 13:16 .mono
drwx------+ 5 y2 staff 160 Jan 13 13:21 Desktop
drwx------+ 3 y2 staff 96 Jan 13 13:15 Documents
drwx------+ 3 y2 staff 96 Jan 13 13:15 Downloads
drwx------@ 51 y2 staff 1632 Jan 13 13:19 Library
drwx------+ 3 y2 staff 96 Jan 13 13:15 Movies
drwx------+ 3 y2 staff 96 Jan 13 13:15 Music
drwx------+ 3 y2 staff 96 Jan 13 13:15 Pictures
drwxr-xr-x+ 4 y2 staff 128 Jan 13 13:15 Public
2. ホームディレクトリ直下に “.ssh” というファインダからは見えない隠しフォルダを作成する.
下記のコマンドを入力し、”.ssh” フォルダのアクセス権限(属性)を “0700” とし、自分だけがアクセスできるように設定する.
iMac27:~ y2$ mkdir .ssh (".ssh"隠しフォルダを作成する)
iMac27:~ y2$ chmod 0700 .ssh (自分だけがアクセスできるように、フォルダのアクセス権を "0700" に設定)
iMac27:~ y2$ ls -la
total 8
drwxr-xr-x+ 15 y2 staff 480 Jan 13 13:24 .
drwxr-xr-x 8 root admin 256 Jan 13 13:15 ..
-r-------- 1 y2 staff 7 Jan 13 13:16 .CFUserTextEncoding
drwx------ 2 y2 staff 64 Jan 13 13:16 .Trash
drwx------ 3 y2 staff 96 Jan 13 13:21 .bash_sessions
drwxrwxrwx 3 y2 staff 96 Jan 13 13:16 .mono
drwx------ 2 y2 staff 64 Jan 13 13:24 .ssh
drwx------+ 5 y2 staff 160 Jan 13 13:21 Desktop
drwx------+ 3 y2 staff 96 Jan 13 13:15 Documents
drwx------+ 3 y2 staff 96 Jan 13 13:15 Downloads
drwx------@ 53 y2 staff 1696 Jan 13 13:23 Library
drwx------+ 3 y2 staff 96 Jan 13 13:15 Movies
drwx------+ 3 y2 staff 96 Jan 13 13:15 Music
drwx------+ 3 y2 staff 96 Jan 13 13:15 Pictures
drwxr-xr-x+ 4 y2 staff 128 Jan 13 13:15 Public
.ssh の左端が “drwx——” となっていることを確認しておく.これは、”.ssh” がディレクトリで、自分(y2)だけが読み込み “r”、書き込み “w”、プログラム実行権 “x” を持っているということを表している.
3. 接続するホスト毎に秘密鍵を管理できるように、”hosts” という名前のフォルダを作成する.
ここから先は、ユーザが自分の流儀で工夫しながら行うべきところではあるが、とりあえずまねをすれば接続できるように、具体的な実例で説明する.敢えて “hosts” というフォルダを作って管理する必要は全くなく、自分が接続先ホストの秘密鍵情報をきちんと管理できればそれで問題は無い.ここでは”hosts”フォルダの下に更に接続ホスト用のフォルダ ”y2conohawing” を作成し、そこに秘密鍵を配置している.
iMac27:~ y2$ cd .ssh (".ssh"フォルダに移動する)
iMac27:.ssh y2$ mkdir hosts (新たに "hosts"フォルダを作成する)
iMac27:.ssh y2$ cd hosts ("hosts"フォルダに移動する)
iMac27:hosts y2$ mkdir y2conohawing (更に "y2conohawing"フォルダを作成する)
iMac27:hosts y2$ chmod 0700 . y2conohawing ("hosts"フォルダと"y2conohawing"フォルダのアクセス権を設定)
iMac27:hosts y2$ ls -la
total 0
drwx------ 3 y2 staff 96 Jan 13 13:26 .
drwx------ 3 y2 staff 96 Jan 13 13:25 ..
drwx------ 2 y2 staff 64 Jan 13 13:26 y2conohawing
iMac27:hosts y2$ cd y2conohawing
iMac27:y2conohawing y2$ ls -la
total 0
drwx------ 2 y2 staff 64 Jan 13 13:26 .
drwx------ 3 y2 staff 96 Jan 13 13:26 ..
4. 秘密鍵ファイルを “y2conohawing”フォルダ配下にコピー(移動)し、アクセス権を設定する.
“y2conohawing”フォルダ内に、ダウンロードした秘密鍵ファイルをコピー(できればオリジナルはUSBメモリなどの外部媒体に保存して、注意深く保管しておくことを奨める)し、自分だけが読み取りのみを行える権限 “0400” “-r——-” に変更する.このアクセス権限がきちんと設定されていないと、アプリケーション側で秘密鍵として有効にならない場合が有る.勿論、この秘密鍵の情報が他人から読み取られてしまう事態だけは絶対に防がなければならないことは言うまでもないだろう.
次に示す事例では、WEBブラウザのダウンロードフォルダの指定場所(“/Volumes/Tmp/Downloads”)に秘密鍵ファイル ”y2-wing-key-2019-01-13-10-26.pem.txt” が置かれている場合の例で、ファイルの拡張子が勝手に “.txt” となっていたので、コピーしたファイルの名前を “y2-wing-key-2019-01-13-10-26.pem” に修正してある.鍵ファイルは “.pem” や “.key” などの拡張子が慣例的に使われる.
iMac27:y2conohawing y2$ cp /Volumes/Tmp/Downloads/y2-wing-key-2019-01-13-10-26.pem.txt y2-wing-key-2019-01-13-10-26.pem
iMac27:y2conohawing y2$ ls -la
total 8
drwx------ 3 y2 staff 96 Jan 13 13:30 .
drwx------ 3 y2 staff 96 Jan 13 13:26 ..
-rw-r--r--@ 1 y2 staff 1679 Jan 13 13:30 y2-wing-key-2019-01-13-10-26.pem
iMac27:y2conohawing y2$ chmod 0400 y2-wing-key-2019-01-13-10-26.pem
iMac27:y2conohawing y2$ ls -la
total 8
drwx------ 3 y2 staff 96 Jan 13 13:30 .
drwx------ 3 y2 staff 96 Jan 13 13:26 ..
-r--------@ 1 y2 staff 1679 Jan 13 13:30 y2-wing-key-2019-01-13-10-26.pem
この状態で鍵認証方式のSSH接続は可能となってはいるが、”Terminal(ターミナル)”などのコマンドライン作業でSSH接続を行うには、”ssh”コマンドの後ろにもの凄く長いパラメータを記述しなければならず、とてもやってられないので、SSH接続のための各種設定をあらかじめ記述した設定ファイルを作成し、簡単にssh接続できるように設定しておくことにする.
因みに、この状態でコマンドラインから”ssh”コマンドで接続するには、次のような長いコマンドラインを入力しなければならない.(perl関連のロケール設定のエラーメッセージについてはとりあえず気にしないでね)
bash-3.2$ ssh -p <ポート番号> -l <ユーザID> -i ~/.ssh/hosts/y2conohawing/y2-wing-key-2019-01-13-10-26.pem www2.conoha.ne.jp
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
[xxxxxxxx@web0002 ~]$
5. コマンドラインから簡単にSSH接続できるように、SSHホスト設定ファイルを作成する.
“.ssh”フォルダ配下に、”config” という名前でSSHホスト設定ファイルを設定しておくと、上記の様な長いコマンドを打ち込まなくても、”%ssh y2-conoha” のような簡略な方法でSSH接続が可能なので、その設定を行っておくことにしよう.
手順は簡単で、”config”という名前のテキストファイルを作成し、接続するサーバ毎に適当な名前を付けて、SSH接続のための各種情報を記述すれば良い.”config”
iMac27:y2conohawing y2$ cd ~/.ssh ( ".ssh"フォルダに移動)
iMac27:.ssh y2$ ls -la
total 0
drwx------ 3 y2 staff 96 Jan 13 13:25 .
drwxr-xr-x+ 15 y2 staff 480 Jan 13 13:24 ..
drwx------ 3 y2 staff 96 Jan 13 13:26 hosts
iMac27:.ssh y2$ vi config (適当なテキストエディタで "config" という名前のテキストファイルを作成)
【テキストエディタでの簡単な編集作業】
iMac27:.ssh y2$ ls -la
total 8
drwx------ 4 y2 staff 128 Jan 13 13:33 .
drwxr-xr-x+ 16 y2 staff 512 Jan 13 13:33 ..
-rw-r--r-- 1 y2 staff 172 Jan 13 13:33 config
drwx------ 3 y2 staff 96 Jan 13 13:26 hosts
iMac27:.ssh y2$ chmod 0600 config
iMac27:.ssh y2$ ls -la
total 8
drwx------ 5 y2 staff 160 Jan 13 13:34 .
drwxr-xr-x+ 17 y2 staff 544 Jan 13 15:01 ..
-rw------- 1 y2 staff 172 Jan 13 13:33 config
drwx------ 3 y2 staff 96 Jan 13 13:26 hosts
“config”ファイルには、SSH接続のための細かな設定を記述できるが、今回はSSH接続ホストに関する記述だけを簡単に示す.ここの内容は、ConoHa WINGの管理コンソールに記されたSSH接続情報に従って記載する必要がある.
Host conoha-wing (SSH接続のための識別名)
Hostname www2.conoha.ne.jp
IdentityFile ~/.ssh/hosts/y2conohawing/y2-wing-key-2019-01-13-10-26.pem
User xxxxxxxx (自分のユーザID)
Port yyyy (指定された SSH接続ポート番号:一般的な22番ではないので注意すること!)
今回は接続先が1つなので、1つのSSHホスト情報しか記載していないが、同じ形式で接続先ホストを追記して行けば複数のSSHホストを簡単に管理できる.
それでは、先ほどの面倒なコマンドライン接続方法ではなく、”~/.ssh/config” ファイルによる簡単SSH接続をやってみよう.
iMac27:.ssh y2$ ssh y2-conohawing
The authenticity of host '[www2.conoha.ne.jp]:yyyy ([163.44.187.15]:yyyy)' can't be established.
ECDSA key fingerprint is SHA256:--------------------------------.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[www2.conoha.ne.jp]:yyyy,[163.44.187.15]:yyyy' (ECDSA) to the list of known hosts.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
[xxxxxxxxx@web0002 ~]$ ls -la
total 35
drwx--x---+ 9 xxxxxxxx xxxxxxxx 14 Jan 13 12:20 .
drwxr-xr-x 3 root root 22 Jan 13 10:09 ..
-rw------- 1 xxxxxxxx xxxxxxxx 15 Jan 13 12:20 .bash_history
-rw-r--r-- 1 xxxxxxxx xxxxxxxx 18 Apr 11 2018 .bash_logout
-rw-r--r-- 1 xxxxxxxx xxxxxxxx 193 Apr 11 2018 .bash_profile
-rw-r--r-- 1 xxxxxxxx xxxxxxxx 231 Apr 11 2018 .bashrc
drwxrwx--x 6 xxxxxxxx xxxxxxxx 6 Jan 13 10:09 .cagefs
drwxr-xr-x 2 xxxxxxxx xxxxxxxx 3 Jan 10 22:06 .cl.selector
drwxr-x--- 2 xxxxxxxx www 2 Jan 10 22:06 .htpasswds
drwx------ 2 xxxxxxxx xxxxxxxx 3 Jan 13 10:38 .ssh
-rw-r--r-- 1 xxxxxxxx xxxxxxxx 658 Aug 2 2017 .zshrc
drwxrwx--- 3 xxxxxxxx www 3 Jan 11 21:34 logs
drwxr-xr-x 2 xxxxxxxx xxxxxxxx 2 Jan 13 10:09 perl5
drwxr-xr-x 3 xxxxxxxx xxxxxxxx 3 Jan 11 21:34 public_html
[xxxxxxxx@web0002 ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
xxxxxxxx 1115865 1115864 0 13:02 pts/0 00:00:00 -bash
xxxxxxxx 1187359 1187358 0 13:34 pts/2 00:00:00 -bash
xxxxxxxx 1187884 1187359 0 13:34 pts/2 00:00:00 ps -ef
[xxxxxxxx@web0002 ~]$ exit
logout
Connection to www2.conoha.ne.jp closed.
iMac27:.ssh y2$
先ほどの様な長いコマンドライを記述する必要がないので、もの凄く楽になることがおわかりいただけただろうか.
SFTP対応アプリケーション “Transmit 5” での設定例
WEBコンテンツを簡単に管理するには、”Tranmit”などのSSHに対応したFTP系のアプリケーションを導入するのが一般的だろう.今回は、Mac用の”Transmit 5″ での設定例を示すが、他のアプリケーションでも設定する項目は同じなので、基本的な設定事項さえ理解していればどのようなアプリでも同じように設定できることだろう.
SSH接続するためのホスト情報を登録する
SSH接続先(ホスト)と使用するポート番号、ユーザIDを登録する
パスワード欄の右端にある鍵マークをクリックして、秘密鍵を登録する作業を実施するが、この辺はアプリケーション毎にかなり癖があるようなので、うまく設定できない場合は使用するアプリのマニュアルやネットの情報を参考にしながら試行錯誤して欲しい.
秘密鍵を設定(インポート)する
秘密鍵ファイル(”~/.ssh/hosts/y2conohawing/y2-wing-key-2019-01-13-10-26.pem”)を指定
(隠しフォルダ “.ssh” が表示されない場合は、アプリの隠しファイルの表示設定を確認すること)
秘密鍵を設定完了
SSH接続ホストの登録作業が完了
以上で、Transmit 5でのSSH接続の設定は完了だ.後は登録した接続情報をダブルクリックして起動するだけで簡単にSSH接続(SFTP)が行われることだろう.
Transmit 5 でSFTP接続を行った様子
FTPによるファイル転送設定(使ってはダメ!!!)
ConoHa WINGでは、FTPによるファイル転送設定も可能な様ですが、基本的にインターネットを介してのFTP転送はやってはいけない.何故GMOインターネットがFTPによるファイル転送を可能にしているのか理解に苦しむが、ConoHa WINGは新しいサービスなので、レガシーなFTP機能を維持する必要など全く無いはずだ.リスクを承知の上でFTPを使いたがるようなユーザ(あるいはリスクを知らないような無知なユーザ)は積極的に排除して欲しい.
GMOインターネットは ConoHa WINGサービスから FTPアクセス機能の提供を早急に止めるべきだ.