本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。プロフィールで選択した情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

VNC と SSH による、IBM Cloud インスタンスへのセキュアなマルチユーザー・アクセス

セキュアなリモート・グラフィカル・アクセスのためのクラウド・インスタンスとクライアントを構成する

Bill Hudacek, Senior IT Architect, IBM
Bill Hudacek はこれまで 20 年間、UNIX と Linux を普及させることを専門に経験を積んできました。彼は現在、IBM Testing Services for the Cloud の主任アーキテクトを務めています。これは、IBM Smart Business Development and Test on the IBM Cloud のパフォーマンス・テストを行うための IBM サービスです。以前は、UNIX/C システムのプログラマーおよびアプリケーション開発者、UNIX システム・マネージャー、そして J2EE/JavaEE/SOA アーキテクトおよび開発者としても活躍していました。クラウド・コンピューティングを専門とする傍ら、セキュリティーに詳しく、パフォーマンスとチームの生産性にも強い関心を持っています。彼は常に「がむしゃらに取り組むのではなく、要領よく作業する」方法を模索しています。

概要: SSH (Secure Shell) と VNC (Virtual Network Computing) を使用してサーバーとクライアントを構成し、IBM® Smart Business Development and Test on the IBM Cloud が提供するクラウド・インスタンスに対し、本番品質のセキュアなリモート・グラフィカル・アクセス手段を実現する方法を学んでください。

日付:  2011年 11月 11日 (公開: 2011年 3月 29日)
レベル: 中級 この記事の原文:  英語
アクティビティー: 5279 ビュー
お気軽にご意見・ご感想をお寄せください: 


この記事で説明するソリューションは、IBM® Smart Business Development and Test on the IBM Cloud (以降、IBM Cloud と略称) で複数の仮想 Linux® インスタンスにセキュアにアクセスする必要のあるチームを対象としています。SSH と VNC を使用して、大部分の組織のセキュリティー要件を満たすと同時にチーム・メンバーのニーズにも応える手段を用意することでメリットが得られます。この記事を読んで、クラウド・インスタンスを構成する方法、そして Windows™ クライアントを構成する方法を学んでください。

  • クラウド・サーバーは以下の手順でセットアップします。
    • ローカル・ユーザー ID を作成する
    • VNC サービス定義を追加する
    • xinetd VNC サービス定義ファイルをインストールする
    • X11 ディスプレイ・マネージャー (Greeter) をカスタマイズする
    • システムのデフォルト・ランレベルを変更する
    • ssvnc プロファイルを作成する (チーム・メンバーへの配布用)
    • SSH 秘密鍵を PuTTY 形式に変換する (チーム・メンバーへの配布用)
  • Windows クライアントは以下の手順でセットアップします。
    • ssvnc をダウンロードする
    • HOME 環境変数を設定する
    • ssvnc プロファイルのディレクトリーを作成する
    • ssvnc セッションを実行するためのショートカットを作成する
    • Windows ベースの SSH エージェントを構成する

手順に取り掛かる前に、いくつかの点を注意しておきます。この記事で言及する Windows は、32-bit の Windows XP を意味します (64-bit の Windows バージョンでは、問題のある結果が報告されています)。Linux を実行している場合、SSH に対する強力なデスクトップ環境のサポートがあれば、さらにシームレスなソリューションも実現可能です。ただし、この記事では Linux クライアントからのアクセスについては取り上げません。最後の注意事項として、SSH を使用する際に関係してくる下位レベルのメカニズムは、この記事の範囲外とします。

用語の解説

VNC (Virtual Network Computing) は、RFB プロトコルを使用してリモートから別のコンピューターを制御する、プラットフォームに依存しないグラフィカル・デスクトップ共有システムです。VNC はクライアント・コンピューターでのキーボード・イベントとマウス・イベントを「サーバー」が実行されているコンピューターに送信し、グラフィカル画面の更新をネットワーク経由でクライアントに送り返します。

RFB (Remote FrameBuffer) プロトコルは、グラフィカル・ユーザー・インターフェースにリモート・アクセスするための単純なプロトコルです。このプロトコルはフレーム・バッファー・レベルで動作するため、すべてのウィンドウ・システムおよびアプリケーションに適用することができます。

ssvnc は、暗号化されたセキュア・ネットワーク接続をスムーズに VNC に統合します。ssvnc は Windows、MacOSX、およびUNIX 用の GUI を提供し、リモート・システムへの接続に SSL または SSH トンネルを作成します。さらにそのトンネルを介して、自動的かつ安全に VNC を実行します (ssvnc は VeNCrypt 暗号化もサポートします。この場合、TLS/X.509 暗号化および認証が VNC に追加されます)。

SSH (Secure Shell) トンネルは、SSH プロトコル接続によって作成された暗号化トンネルで構成されます。ユーザーは SSH トンネルをセットアップすることで、ネットワーク上の暗号化チャネルを利用して非暗号化トラフィックを転送することができます。SSH クライアントは指定されたローカル・ポートをリモート・マシン上のポートに転送します。トンネルが確立されると、ユーザーは指定されたローカル・ポートに接続することで、リモート・マシン上のネットワーク・サービスにアクセスできるようになります。ローカル・ポートとリモート・ポートは、同じポート番号でなくても構いません。通常は、サービスへのセキュアではないアクセスを不可能にするために、リモート・サービスも「ループバック・アダプター」でのみリッスンするように構成されます。

TLS (Transport Layer Security) は、インターネットでの通信セキュリティーを提供する暗号プロトコルです。TLSはトランスポート層より上のネットワーク接続のセグメントを暗号化します。その際、対称暗号を使用して機密性を実現し、鍵付きメッセージ認証コードを使用してメッセージの信頼性を実現します。SSL は、TLS の元になったプロトコルです。

X.509 は、シングル・サインオン用の PKI (Public Key Infrastructure: 公開鍵インフラストラクチャー) および PMI (Privilege Management Infrastructure: 権限管理インフラストラクチャー) に関する ITU-T 規格です。この規格では、公開鍵証明書、証明書失効リスト、属性証明書の標準形式や、証明書パス検証アルゴリズムを規定しています。

1 要素認証とは、コンピューティング・サービスに対してユーザー本人の身元を証明する方法を分類するクラスの 1 つに付けられた名前です。このクラスにおける認証では、ユーザーはユーザー ID とパスワードといった「本人しか知らない情報」を提供します。

2 要素認証とは、コンピューティング・サービスに対してユーザー本人の身元を証明する方法を分類するクラスの 1 つに付けられた名前です。このクラスにおける認証では、ユーザーは「本人しか知らない情報」と併せ、「その本人に提供された情報」を提供します。SSH 鍵ベースの認証、SSL 証明書ベースの相互認証はどちらもこのタイプの認証の例です。

クラウドに合わせた VNC

この実装では以下のように、VNC の振る舞いを、クラウドそのものに備わっている柔軟で動的な性質に合わせます。

  • ディスプレイ・サイズは、ユーザーが自由に選択することができます。
  • 任意の数のユーザーが、同じディスプレイ・サイズまたは異なるディスプレイ・サイズを使用して同時にログインすることができます。
  • セッションは共有されません。
  • ネットワーク接続が切断されると、ユーザーのセッションが終了します。

ひねりを利かせた 2 要素認証

この記事で説明するソリューションを使用する場合、IBM Cloud システムへのログイン・プロセスには以下の両方が必要になります。

  • SSH 鍵 (パスフレーズによってロックは解除されます)
  • Linux ユーザー ID (パスワードと対になっています)

SSH 鍵は、実際には以下の 2 つの「blob」形式の情報から構成されます。

  • クラウド・インスタンスにすでに存在する blob (公開鍵)
  • ログインするユーザーが所有している必要がある blob (秘密鍵)

IBM Cloud は、Linux ベースの新規クラウド・インスタンスに対し、自動的にユーザー idcuser を作成します。これは、新しいクラウド・インスタンスに SSH を使用してアクセスするためのユーザー ID です。この記事で説明するマルチユーザー・アクセスでは、ユーザー・アカウントを新しく作成して使用しますが、クラウド・アカウントを使用するユーザーが 1 人しかいない場合には、SSH によってすでに 2 要素認証が行われることになるので、idcuser だけでクラウド・インスタンスにアクセスすることができます。ただし、idcuser にはパスワードを指定する必要があります (デフォルトでは、パスワードがありません)。

けれども大抵の場合は、チームが一連のクラウド・インスタンスを共有する形で使用しています。高度なセキュリティーが必要であれば、個々のメンバーがそれぞれに許可されたクラウド・インスタンスに、各メンバーに固有の SSH 鍵を使用してアクセスしなければならないようにすることも可能であり、また、そうしたほうが望ましくさえありますが、この記事ではより一般的な想定に基づき、同じ SSH 秘密鍵をチームのメンバー全員に配布することを前提とします。ただし、SSH によって 2 要素認証が行われることには変わりないので、この方法を使用する場合には、クラウド・インスタンスにアクセスする個々のメンバーを識別するだけでは足りません。そのため、各クラウド・インスタンスでユーザー・アカウントを作成します。これらのアカウントを利用してチーム・メンバーに権限を付与することもできます。つまり、必要な場合には、チームのメンバー全員にすべてのクラウド・インスタンスへのアクセスを許可する代わりに、個々のインスタンス単位で権限を付与できるということです。

この記事で紹介するソリューションでは、一連のクラウド・インスタンスを共有するチームの要件およびベスト・プラクティスに対処するために、各ユーザーが従来の X11 Greeter アプリケーションを使用して「本人しか知らない情報」、「その本人に提供された情報」、「他に知っている情報」の組み合わせを提供することによって、ユーザーをリモート・システムにログインさせます (この認証は、「2 + 1 要素認証」と呼ぶことができます)。


サーバーのセットアップ

クラウドの Linux 管理者にとって嬉しいことに、実行中のすべてのクラウド・インスタンスでは、ファイアウォールの設定を変更する必要が一切ありません。それは、すべてのトラフィック・フローには SSH が使用され、したがってポート 22 が使用されるためです。ポート 22 は、新しくプロビジョニングされた RHEL (Red Hat Enterprise Linux) クラウド・インスタンスでオープンされる唯一の TCP ポートです。

ローカル・ユーザー ID を作成する

ユーザー・アカウントは、クラウド・インスタンスごとに作成しなければなりません。新規ユーザー・アカウントを作成するには、新規クラウド・インスタンスでコマンドラインの PuTTY/SSH セッションから以下のシェル・コードを実行します。

# (assume here we already have $userName and 'plaintext' $password...)
# Convert password to already-hashed string we can insert into
# /etc/password; choose your own 'salt' if you like.
etcPassEntry=$(echo "$password" | openssl passwd -stdin -crypt -salt AZ )
sudo /usr/sbin/useradd -c 'auto-generated by script' -m -n -g users  \
  --password "$etcPassEntry" "$userName"

VNC サービス定義をクラウド・インスタンスに追加する

/etc/services の最後に以下の行を追加します。

vnc8x6         5908/tcp
vnc10x7        5910/tcp
vnc11x8        5911/tcp
vnc12x10       5912/tcp
vnc14x10       5914/tcp
vnc16x12       5916/tcp

選択する VNC ポートには、ディスプレイ・サイズの「ショートカット」が緊密に関連付けられることに注意してください。

xinetd VNC サービス定義ファイルをインストールする

/etc/xinet.d VNC サービス定義ファイルをインストールします (上記のサービスごとに 1 つの VNC サービス定義ファイルがあるはずです)。以下に記載するのは、ファイル名 /etc/xinet.d/vnc8x6 のサービスの場合の例です。ファイル名とサービス名は、/etc/services に追加した行の先頭のワードと一致している必要があります (この例の場合は、vnc8x6)。

service vnc8x6
{
    disable = no
    socket_type = stream
    protocol = tcp
    only_from = 127.0.0.1
    wait = no
    user = nobody
    server = /usr/bin/Xvnc
 # the two lines below must be joined to make a single line in the file you create
       server_args = -inetd -geometry 800x600 -depth 16 -query localhost
         -once securitytypes=none -fp unix/:7100 -desktop "vhost0###@8x6"
   }

文字列 vhost0###@8x6 は、VNC ウィンドウのタイトルとして使用されます。一度に複数のウィンドウを開くことができるため、この文字列はホスト名の短縮形に設定するのが得策です。

X11 ディスプレイ・マネージャー (Greeter) をカスタマイズする

/etc/gdm/custom.conf ファイルを編集して、以下のように変更します。

[xdmcp]
Enable=true

システムのデフォルト・ランレベルを変更する

  1. /etc/inittab ファイルで、システムのデフォルト・ランレベルを 3 から 5 に変更します。テキスト・エディター (例えば、sudo vi /etc/inittab) で、以下のように initdefault の指定を変更してください。
    id:5:initdefault:
    

  2. xinetd を再起動します。
    sudo /sbin/service xinetd restart
    

  3. システムをランレベル 3 (ネットワーク) からランレベル 5 (X11) に強制変更します。インスタンスを再起動するのでも構いませんが、この方法のほうが簡単で時間もかかりません。
    sudo init 5
    

クラウド・インスタンス用の ssvnc プロファイルを作成する

このセクションで示すプロファイルは、実際にはクライアント (ユーザー) 用であり、クラウド・インスタンス用ではありませんが、インスタンスをプロビジョニングするときにこれらのプロファイルを作成または生成する必要が出てくる可能性や、Linux サーバーまたは Linux デスクトップ・プラットフォームで自動化が行われる可能性があるので、このセクションでプロファイルを作成する方法を説明しておきます。

サポートしたいさまざまな解像度ごとに、以下のシェル・コードのスニペットで構成ファイルの完全なセットを作成します。

# hostName can be either shortname or FQDN
# vhost0022 is just an example here - use your own host name
hostName="vhost0022"
# userName will typically be 'idcuser'
userName="idcuser"
for thePort in 8 10 11 12 14 16; do
    thePort4Digit=$(echo "$thePort" | awk '{printf("%d", 5900+$1)}')
    profileName=$hostName-$userName-$thePort.vnc
    cat template-user-port.vnc | sed -e "s/@theHost@/$hostName/" \
            -e "s/@theUser@/$userName/"\
            -e "s/@thePort@/$thePort/"\
            -e "s/@thePort4Digit@/$thePort4Digit/" > $profileName
done
zip "$hostName-$userName-VNC-files.zip" $hostName*vnc >&2

上記のスニペットで使用している template-user-port.vnc ファイルを以下に記載します。

[connection]
host=@theUser@@@theHost@
port=@thePort4Digit@
proxyhost=
proxyport=
disp=@theUser@@@theHost@:@thePort@

[options]
compresslevel_text=Compress Level: 1
ssvnc_escape=default
use_compresslevel=1
use_send_clipboard=1
use_ssh=1

SSH 秘密鍵を PuTTY 形式に変換する

新しいクラウド・インスタンスに対して実行しなければならない最後のステップは、OpenSSH 秘密鍵を PuTTY で使用可能な形式に変換することです。それには、PuTTYgen を使用します。PuTTYgen の変換メニューから「import (インポート)」を選択し、OpenSSH 鍵ファイル (例えば、id_rsa) を選択してパスフレーズを入力します。鍵のインポートが完了したら、鍵をディスクに保存します (c:\ssvnc\Windows\certs ディレクトリー内)。拡張子「.ppk」が付いたこのファイルをクラウド・チームに配布してください。クラウド・チームでは、このファイルを同じ場所に保管します。


クライアントのセットアップ

ssvnc をダウンロードする

ssvnc をダウンロードしたら (「参考文献」を参照)、そのファイルを C: ドライブの最上位レベルのディレクトリーに解凍します。ファイルが適切に解凍されると、C:\ssvnc というサブディレクトリーが作成されます。必ずディレクトリー構造が維持されるようにし (つまり解凍プログラムでディレクトリー構造が維持されるようなオプションを使用し)、次のステップに進む前に ssvnc のディレクトリー構造が作成されているようにしてください。

HOME 環境変数をセットアップする

  1. デスクトップで「My Computer (マイ コンピューター)」を右クリックして「Properties (プロパティ)」を選択し、「Advanced (詳細設定)」タブを選択します (図 1 を参照)。

    図 1. システムのプロパティ


  2. HOME 変数が設定済みの場合は、その場所をメモしておききます (この後、必要になります)。まだ設定されていない場合は、「Environment Variables (環境変数)」ボタンをクリックし、「New (新規)」をクリックして HOME 変数を追加します。図 2 に一例を示します (私の Windows アカウントは bgh なので、c:\bgh を使用しました)。

    図 2. HOME 環境変数の定義


  3. OK」を 3 回クリックして変更内容を保存します。

ssvnc プロファイルのディレクトリーを作成する

  1. Windows® のエクスプローラを開いて C: ドライブまでナビゲートし、(必要な場合は) HOME ディレクトリー (前のセクションで HOME 変数として入力したディレクトリー) を作成します。ディレクトリー・パスの下にサブディレクトリーを作成し、ss_vnc という名前を付けます。
  2. 新しく作成したサブディレクトリーをダブルクリックしてカレント・ディレクトリーにし、さらに profiles という名前の別のサブディレクトリーを作成します。これで、%HOME%\ss_vnc\profiles ディレクトリーが用意できました。

    図 3. ネストされたディレクトリー


ssvnc セッションを実行するためのショートカットを作成する

適切なホストの ssvnc 構成が含まれる zip ファイルを入手すると、アーカイブ・ファイルは図 4 に示すような内容になっているはずです。


図 4. 典型的な ssvnc プロファイル zip アーカイブの内容

これらのファイルを、前のセクションで作成したディレクトリー (%HOME%\ss_vnc\profiles) に解凍します。

Windows ベースの SSH エージェントを構成する

リモート・システムとセキュアに接続したい場合には、まず、SSH 鍵の秘密鍵が含まれる PPK ファイルを開きます。秘密鍵のパスフレーズを入力すると、鍵が「ロック解除」されます。通常、この鍵を使用するリモート・クラウド・インスタンスに接続するには、その都度このパスフレーズを入力しなければなりませんが、その面倒を省く安全な方法があります。それは、SSH エージェントを用いることです。

Windows では、SSH エージェントは Pageant と呼ばれ、ssvnc に付属の PuTTY SSH ツール・セットの一部となっています。Pageant はユーザーがログインした後、ユーザーに対して SSH パスフレーズの入力を求めるプロンプトを出し、パスフレーズが入力されると、ロックが解除された鍵を保存します。その後は、ユーザーがクラウド・インスタンスに接続するたびに、ssvnc パッケージは Pageant に SSH 秘密鍵を要求することになります。したがって、ユーザーはログアウトして再度ログインするまで、パスフレーズを入力する必要がありません。この利便性は、同じセッションで 2 台のサーバーに接続する場合でも、多数のサーバーに接続する場合でも実感できるはずです (もちろん、各ユーザーのインスタンスごとの SSH 鍵を使用するとしたら、Pageant が鍵を提供するのは各インスタンスへの 2 回目の接続以降となりますが、これはセキュリティーの強化に伴う代償です)。

1 つ以上の PuTTY SSH 秘密鍵 (PPK ファイル) を受け取っているはずなので、これらの PPK ファイルを c:\ssvnc\Windows\certs サブディレクトリーに保管してください。SSH 鍵のファイル名は必ず id_rsa.ppk で終わります。したがって鍵ファイルの名前は、例えば CloudCustomer-Dev-Team-12-Provisioning-Key-id_rsa.ppk のようになります。

SSH エージェントの構成方法

ログインすると常に Pageant が起動するように設定します。Windows にログインすると Pageant が起動するように設定するには、Pageant プログラムのパスと、ファイル名が id_rsa.ppk で終わる SSH 鍵ファイルのパスが必要です。

  1. Windows で「Start (スタート)」を右クリックし、「Explore (エクスプローラ)」を選択します。
  2. Programs (プログラム)」サブディレクトリーをダブルクリックして展開し、「Startup (スタートアップ)」サブディレクトリーをダブルクリックします。
  3. Windows の「Explore (エクスプローラ)」ウィンドウの右側を右クリックして「New (新規作成)」を選択し、「Shortcut (ショートカット)」を選択します (図 5 を参照)。

    図 5. ショートカットの作成


  4. ショートカットの「場所」は、C:\ssvnc\Windows\util\pageant.exe c:\ssvnc\Windows\certs\<NAME>-id_rsa.ppk のようになります。「Next (次へ)」をクリックし、「Finish (完了)」をクリックします。
  5. コンピューターを再起動する必要も、ログアウトしてログインし直す必要もありません。単に、新規に作成したショートカットをダブルクリックします。すると、パスフレーズの入力を促すダイアログ・ボックスが表示されます。

    図 6. パスフレーズの入力を促す SSH エージェント


  6. パスフレーズを正しく入力して「OK」をクリックすると、ダイアログ・ボックスが消えた後、何も応答は返ってきません。入力を誤った場合には、パスフレーズの入力を促すダイアログ・ボックスが再表示されます。パスフレーズの入力に成功したら、システム・トレーに黒い帽子を被ったコンピューターのアイコンが表示されていることを確認します (通常、システム・トレーは画面の右下隅にあります)。

    黒い帽子を被ったコンピューター

  7. このアイコンをダブルクリックすると、ウィンドウが表示されます。

    図 7. Pageant の鍵リスト


図 7 のように、このウィンドウに鍵を表す行が 1 つ以上含まれていれば、手順は完了です。

ssvnc セッションを実行するためのショートカットを作成する

ファイル名に含まれる数値 (例えば、図 4 の vhost0022.site1.compute.ihost.com-8.vnc) は、その ssvnc 構成ファイルを使用した場合の VNC ウィンドウのディスプレイ・サイズを指定します (表 1 に、完全なリストを記載します)。

重要な点として、物理ディスプレイの解像度よりも小さいウィンドウを作成するプロファイルを選択してください。ウィンドウ全体が物理ディスプレイの画面に収まっていないと、リモート・コンピューターとの対話が非常に難しくなるからです (特に、ほとんどの Linux デスクトップ環境では画面の最上部と最下部にメニューがあるため)。画面サイズに関する詳しい説明は、「付録: ディスプレイの解像度と VNC のディスプレイ・サイズ」を参照してください。


表 1. VNC ファイル名に対応する VNC のウィンドウ・サイズ
ファイル名に含まれる数値VNC のウィンドウ・サイズ
8800x600
101024x768
111152x864
121280x1024
141400x1050
161600x1200

ショートカットを作成する手順は以下のとおりです。

  1. デスクトップ上に、クラウド・インスタンスに接続するためのショートカットを作成します。ここでも同じく、vhost0022 を例にとると、ショートカットのコマンドライン (あるいは「場所」) は以下のようになります。
    C:\ssvnc\Windows\sshvnc.bat vhost0022.site1.compute.ihost.com-10.vnc
    

    ここで入力しているのはホスト名ではなく、ssvnc 構成ファイルのファイル名であることに注意してください。したがって、ディレクトリーは含めないでください。
  2. 次へ」をクリックします。ショートカットには、vhost0022-small や vhost0022-large などの名前を指定することをお勧めします。複数の解像度を使用しない場合には、単に vhost0022 としても構いません。
  3. 完了」をクリックします。以上の手順は、すべてのホストおよび各ホストのすべての解像度について実行してください。

以上でセットアップは完了です。これで、クラウド・インスタンス GUI にアクセスできるようになりました。


ログイン・プロセス

まずは ssvnc からログインする方法を説明します。その後、ログイン・プロセスに関して注意しなければならない点をいくつか示します。

SSH 接続を介してログインする

  1. 作成したデスクトップ・ショートカットのいずれかをダブルクリックします。1 つまたは 2 つのウィンドウがポップアップ表示され、消えていきます。

    注: この特定のクラウド・インスタンスに接続するのが初めての場合には、図 8 のような画面が表示されます。



    図 8. サーバーの SSH 鍵を PuTTY キャッシュに追加するよう求める画面


  2. おそらくご想像のとおり、ユーザーが SSH 鍵の一部を持っているのと同じように、サーバーも SSH 鍵の一部を持っています。お望みであれば、サーバーから提供された鍵のフィンガープリントを比較することができます (この値は、鍵を変換するために puttygen にロードするときに目にする値と同じです)。いずれにしても、クラウドに最初に接続するときに「Y」と入力すれば、この画面が再び表示されることはありません。
  3. しばらくすると、VNC クライアントには、ログイン画面が開きます。

    図 9. VNC ウィンドウのログイン・プロンプト


  4. ウィンドウのサイズは、選択した ssvnc プロファイルによって異なります。ユーザー ID とパスワードを使ってリモート・サーバーにログインします。
  5. 作業を完了し終わったら、セッションを終了します (「System (システム)」メニューの下にログアウトの選択項目があります)。

ログイン・プロセスに関する注意事項

ログイン・プロセスについては、以下の点に注意してください。

  • 1 人のユーザーとして複数回ログインする必要や、(ローカル・コンピューターから) 異なる 2 人のユーザーとしてログインする必要があると思われる場合、そのようなログインはサポートされています。
  • セッションは、ユーザーが後で戻れるようにアクティブな状態のまま維持されるわけではありません。クラウド・インスタンスへの接続が終了すると、セッションも終了します。
  • ターミナル・ウィンドウ (「Accessories (アクセサリ)」メニューにある「Command Prompt (コマンド プロンプト)」で、以下に示す 2 つのコマンドのいずれかを使用すると、ログインしている他のユーザーおよびそのユーザーが最後に操作を行ってから経過した時間が表示されます。
    $ w
     04:25:06 up 2 days, 12:20,  4 users,  load average: 1.02, 0.24, 0.07
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    user1    localhos localhost.locald 04:17    0.00s  0.00s  0.10s -/usr/bin/ksh [...] 
    user1    pts/0    localhost.locald 04:17    0.00s  0.11s  0.11s -ksh
    user2    pts/1    localhost.locald 04:25    9.00s  0.14s  0.12s -ksh
    
    $ who -HTu
    NAME       LINE         TIME             IDLE          PID COMMENT
    user1    ? localhost.localdomain:12 2011-03-01 04:17 ? 11042 (localhost.localdomain)
    user1    + pts/0        2011-03-01 04:18   .  11198 (localhost.localdomain:12.0)
    user2    + pts/1        2011-03-01 04:25   .   13444 (localhost.localdomain:10.0)
    

足りないファイアウォール・ルールを設定する

iptables によるファイアウォールの設定が、インスタンスからそれ自身への (ループバック・アダプター上での) 接続を禁止している場合があります。SSH トンネルを確立できたのに VNC 接続を確立できない場合には、/etc/sysconfig/iptables を調べて -A INPUT -i lo -j ACCEPT のような指定がされているか確認してください。このような指定が見つからない場合は、-A INPUT -i lo -j ACCEPT を追加してください。この内容を追加すると iptables のルール・ファイルは以下の例のようになるはずです (太字のテキストが追加した部分です。ファイアウォールの動作を理解していない場合は、このファイルの他の部分には触らないようにしてください)。

iptables のルール・ファイルを編集しなければならない場合は、必ず root として (つまり sudo を実行して) 作業を行うようにしてください。また、編集前にこのファイルのバックアップを取り、編集は注意深く行ってください。編集が完了したらファイルを保存し、以下のコマンドを実行して iptables を再起動してください。


まとめ

この記事では IBM Cloud でクラウド・インスタンスを構成する方法として、ssvnc の使用をサポートすることで、ユーザーとユーザーのチームが仮想マシンへのセキュアなリモート・グラフィカル・アクセスを共有できるようにする方法を説明しました。この機能を最大限に活用する Windows クライアントを構成する手順を説明するなかで、ssvnc を見つけてダウンロードする方法、HOME 環境変数を設定する方法、ssvnc プロファイルのディレクトリーを作成する方法、ssvnc セッションを実行するためのショートカットを作成する方法、そして独自の SSH エージェントを構成する方法を説明しました。記事ではまた、ssvnc を介したログイン方法、VNC ウィンドウのディスプレイ・サイズに関する検討事項についても取り上げ、最後にログインに関する注意事項と、それに伴い想定される結果を示しました。


付録: ディスプレイの解像度と VNC のディスプレイ・サイズ

以下の表には、ディスプレイの解像度の「名称」(ID) およびそのディスプレイ・サイズ (ピクセル単位) と、その解像度に応じた VNC プロファイルの最適な選択肢が記載されています。

名称解像度 (ピクセル) ssvnc プロファイル名
XGA1024x768vhost0022.site1.compute.ihost.com-8.vnc
WXGA1280x768vhost0022.site1.compute.ihost.com-8.vnc
WXGA1280x800vhost0022.site1.compute.ihost.com-10.vnc
SXGA1280x1024vhost0022.site1.compute.ihost.com-11.vnc
SXGA+1400x1050vhost0022.site1.compute.ihost.com-12.vnc
UXGA1600x1200vhost0022.site1.compute.ihost.com-14.vnc
WSXGA+1680x1050vhost0022.site1.compute.ihost.com-14.vnc
HD 10801920x1080vhost0022.site1.compute.ihost.com-14.vnc
WUXGA1920x1200vhost0022.site1.compute.ihost.com-14.vnc
QXGA2048x1536vhost0022.site1.compute.ihost.com-16.vnc
WQXGA2560x1600vhost0022.site1.compute.ihost.com-16.vnc
QSXGA2560x2048vhost0022.site1.compute.ihost.com-16.vnc

最初の 2 列に示しているのは、物理ディスプレイの解像度です。それぞれの解像度ごとに、最適な VNC プロファイルのファイル名を 3 列目に示しました (これは、ディスプレイに完全に収まる範囲で可能な限り大きい VNC ウィンドウです。VNC ウィンドウが大きすぎると、最上部のメニューを表示するにはスクロールアップし、最下部のメニュー/タスク・バーを表示するにはスクロールダウンしなければならなくなります。そうなると、ユーザビリティー面での重大な問題となります)。


参考文献

学ぶために

製品や技術を入手するために

  • IBM Smart Business Development and Test on the IBM Cloud で使用できる製品イメージを調べてください。

議論するために

著者について

Bill Hudacek はこれまで 20 年間、UNIX と Linux を普及させることを専門に経験を積んできました。彼は現在、IBM Testing Services for the Cloud の主任アーキテクトを務めています。これは、IBM Smart Business Development and Test on the IBM Cloud のパフォーマンス・テストを行うための IBM サービスです。以前は、UNIX/C システムのプログラマーおよびアプリケーション開発者、UNIX システム・マネージャー、そして J2EE/JavaEE/SOA アーキテクトおよび開発者としても活躍していました。クラウド・コンピューティングを専門とする傍ら、セキュリティーに詳しく、パフォーマンスとチームの生産性にも強い関心を持っています。彼は常に「がむしゃらに取り組むのではなく、要領よく作業する」方法を模索しています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing
ArticleID=650367
ArticleTitle=VNC と SSH による、IBM Cloud インスタンスへのセキュアなマルチユーザー・アクセス
publish-date=11112011