今回は、ニフティクラウドを利用して、サーバーへのログインを実行するまでに注意しておきたいポイントをまとめてみました。
リージョン/ゾーンを選択しよう
ダッシュボードにログインして、最初に確認したいことはリージョンの選択です。
デフォルトでは東日本(east-1)が選択されています。 うっかりほかのリージョンにサーバーを立ててしまったりしないようにするためにも、あらかじめ、どのリージョンに何を作るのかをある程度決めてから作業を行う必要があります。
リージョンのレスポンスを調べる
たとえば、前々回行ったネットワークのベンチマークでは、私のオフィス(渋谷)からは東日本(east-2)の方が高速でした。
もし可能なら、それぞれのリージョンにサーバーを作成して、pingコマンドなどでレスポンスを確認してみてください。
機能からリージョン/ゾーンを選択する
いくつかの機能は、特定のリージョンでしか利用できません。
正確には、リージョン内はさらにゾーンに分割されており、特定のゾーンでのみ利用できる機能ということになります。
機能が利用できるリージョン/ゾーンは、以下のページで確認できます。
ニフティクラウド ゾーン別機能対応表
ニフティクラウド 北米リージョン機能対応表
比較的制約が少ないのはeast-13ゾーン、east-14ゾーンあたりでしょうか。
ゾーンはそれぞれ別々のシステムとして運用されているため、サーバー作成後、ゾーン間を移動させることができません(どうしても移動させたい場合は、サーバーコピー機能を利用する必要があります)。
後から機能を追加するような可能性がある場合には、あらかじめ機能が豊富なゾーンを選択しておいた方がよいでしょう。
SSHでLinuxサーバーに接続するための注意すべきポイント
サーバーのOSとしてLinuxを使用する場合、リモートログインするためにSSHを使います。 SSHの接続認証には「公開鍵認証」が使われており、公開鍵(SSHキー)をあらかじめ登録しておく必要があります。
また、公開鍵と対になっている秘密鍵を、リモートログイン時に使用する端末に保管しておく必要もあります。
SSH接続するために、いくつかの注意点があります。
パスワード認証はできません
総当たり攻撃によって不正ログインされてしまうので、パスワード認証は行えない設定になっています。
公開鍵の形式はRSA暗号です
ニフティクラウドで使用できる公開鍵は、RSA暗号を使用して作成したもののみです。 DSA暗号を使用して作成した公開鍵はインポートできません。
ssh-keygenコマンドで作成した公開鍵をインポートしたい場合には、暗号形式に注意してください。 RSA暗号ならid_rsa.pub、DSA暗号ならid_dsa.pubというファイル名で公開鍵が作成されているはずです。
ssh-keygenコマンドのデフォルトはRSA暗号なので、あえてDSA暗号を使って公開鍵・秘密鍵を作成していない限り問題にはならないでしょう(私は思いっきり引っかかりましたが…)。
既存サーバーの公開鍵を交換する機能はありません
サーバーを新規に作成する際に、ユーザーrootでリモートログインできるように公開鍵が設置されます。
対となる秘密鍵が手元にない、秘密鍵をなくしてしまったなどの理由でリモートログインできなくなっても、後から公開鍵を交換する機能はセキュリティの関係で用意されていません。
サーバーを新規作成したら、ユーザーrootでリモートログインした後、一般ユーザーを作成して別途接続できるようにしておくなど、ユーザーroot以外のログイン方法を用意しておくべきでしょう。
SSHキーはリージョン毎に必要です
SSHキーはリージョン毎に管理されています。 別リージョンを使いたい場合にはサーバー作成をする前に公開鍵を作成、またはインポートしてください。
公開鍵をいちいち作成すると、対になる秘密鍵もその数だけできてしまうので管理が煩雑になってしまうでしょう。
ダッシュボードで作成した公開鍵の取得方法
ダッシュボードから公開鍵と秘密鍵を作成できますが、ダウンロードできるのは秘密鍵を作成時に1回だけです。また、ダッシュボードからは公開鍵をダウンロードすることができません。
もし、この公開鍵をほかのリージョンにインポートして使いたい場合には、以下の方法で公開鍵の情報を取得する必要があります。
サーバー上で確認する
リモートログインできるサーバーで設置された公開鍵を確認します。
ユーザーrootでログイン後、/root/.ssh/authorized_keysの内容を確認します。
公開鍵はテキストデータですので、ターミナルからそのままテキストエディタにコピー&ペーストして、ファイルとして保存しておくことができます。
秘密鍵から公開鍵を生成する
秘密鍵から公開鍵を生成できます(逆はできません)。
ssh-keygenコマンドなら-yオプションを指定し、-fオプションで秘密鍵を指定すると標準出力に公開鍵が出力されます。
$ ssh-keygen -y -f id_rsa
Enter passphrase:
ssh-rsa AAAAB3NzaC(略)
サーバーを使い始めるまでの流れのまとめ
それでは、上記の注意事項をふまえて、ニフティクラウド上でサーバーを使い始めるまでの流れをまとめてみましょう。
クライアントはWindows、サーバーで使用するOSはLinuxを想定しています。
1. ターミナルソフトを用意する
サーバーにSSHで接続するためのターミナルソフトを用意します。 「Tera Term」がよく利用されています。
ダウンロードしてインストールしておきます。
2. SSHの公開鍵・秘密鍵を作成する
ダッシュボードで作成する事もできますが、手元のコンピュータで作成する方がよいでしょう。
Tera Termを起動して、接続ダイアログが表示されますがキャンセルします。
「設定」メニューから「SSH鍵生成」を選択します。 鍵生成ダイアログが表示されたら、「生成」ボタンをクリックします。鍵のパスフレーズを2カ所入力し、必要ならコメントを修正しておきます。
「公開鍵の保存」ボタンをクリックするとid_rsa.pubファイルを、「秘密鍵の保存」ボタンをクリックするとid_rsaファイルが保存できます。
3. ニフティクラウドにSSHキーをインポートする
作成した公開鍵(id_rsa.pub)をニフティクラウドのダッシュボードからインポートします。
複数のリージョンを利用する場合には、各リージョン毎にこの作業が必要になります。
3-1. ニフティクラウドのダッシュボードにログインする
ニフティクラウドのダッシュボードにログインします。
3-2. リージョンを選択する
必要に応じてリージョンを選択します。 ゾーンはサーバーの新規作成時に選択できます。
3-3. SSHキーをインポートする
「SSHキー」メニューを選択し、「SSHキーインポート」ボタンをクリックして公開鍵をリージョンに登録します。
公開鍵ファイルをダイアログから選ぶこともできますし、公開鍵の中身をテキストエディタなどからコピー&ペーストしても構いません。
4. サーバーを新規作成する
サーバーを新規作成します。登録したSSHキーが選択できるようになっているはずです。
5. サーバーを起動する
サーバーを起動します。起動が終わると、グローバルIPアドレスが割り当てられるので、接続先として確認しておきます。
6. サーバーに接続する
Tera Termを再起動し、サーバーのグローバルIPアドレス宛に接続します。
初めての接続の際には、「セキュリティ警告」というダイアログが表示されます。
SSHでの接続時には、サーバー側から「ホスト鍵」が送られてきます。
ホスト鍵はクライアントのknown_hostsファイルに書き込んでおき、次回以降の接続のときに照合して、間違ったサーバーに接続していないか確認するために使われます。
今回は初めての接続なので照合するホスト鍵が存在しないため、警告が表示されます。 「続行」ボタンをクリックすれば、ホスト鍵がknown_hostsに書き込まれます。
接続のためのユーザ名はrootに、認証方式として「RSA/DSA/ECDSA/ED25519鍵を使う」を選択し、「秘密鍵」ボタンをクリックして作成した秘密鍵ファイル(id_rsa)を指定します。
作成時にパスフレーズを指定している場合には、パスフレーズをテキストボックスに入力しておきます。
接続のための準備ができたら、「OK」ボタンをクリックしてサーバーに接続します。
まとめ
SSHはパスワード認証も行えるため、多くの人が設定が面倒な公開鍵認証を使用せずにSSH接続を行っているかもしれません。
しかし、セキュリティを考慮すると、より安全な認証方法である公開鍵認証の利用が必要となります。
慣れてしまえばそれほど難しくありませんので、しっかりと手順を理解しておきたいですね。