ECSのVNCが英語キーボードで困った場合の回避方法 #2

Alibaba Cloud ECSでは仮想マシンのディスプレイ/KB/マウスをコンソールとして操作できるVNC接続が標準提供されています。

しかし、このVNC接続ですが英語キーボードの環境しか対応していません。私の日本語キーボードの環境では”@”や”:”を入力することが出来ません。

前回以下の記事でCloud Shellによる回避策を紹介しました。

今回はWindowsでもLinuxでも効果のあるより汎用的な回避策をご紹介します。

1. 操作端末側のキーボードレイアウトの変更

もっとも汎用的な回避策として、操作端末側のキーボードレイアウトを変更します。 操作端末とは手元の端末となりAlibaba Cloud コンソールにログインする環境です。

今回は、Windows 10がインストールされたごく一般的なWindows PC環境での操作手順を紹介します。

”設定”を開き、”時刻と言語”をクリックします。

”言語”メニューから”日本語”をクリックし、”オプション”をクリックします。

”レイアウトを変更する”をクリックします。

”英語キーボード(101/102 キー)”に変更し、”OK”をクリックします。 変更の反映にはOSの再起動が必要となります。

Alibaba Cloud コンソールにログインし、ECSの管理画面からVNCで接続します。

すべてのキーのマップを確認します。 以下の画像は、ShiftキーなしとShiftキーありの実際の出力結果です。

|(パイプ)が2つあるくらいで問題ありません。 viも問題なく”:q”が実行出来ました。

なお、今回のテスト環境のキーボードはロジクール社のK380というキーボードを使いました。 日本語配列と英語配列の両方の刻印があるため、あの記号どこだったかな??と忘れた時にちょっと便利です。


https://www.logicool.co.jp/ja-jp/product/multi-device-keyboard-k380

とりあえず、操作端末側のキーボードレイアウトを英語キーボードに変更することでVNCを問題なく利用できることは確認出来ました。 ただ、この方法は操作端末側のOS再起動が必要となることと、英語キーボードの配列を覚えておく必要があることに注意が必要になると思います。

2. 英語キーボード環境からの操作

Alibaba CloudのVNC機能が英語キーボードにしか対応しないということであれば、英語キーボード環境から操作するのが単純な話です。

手元にある英語キーボードとして以下の環境でテストしました。 iPadなのであまり一般的ではない構成ですよね。

  • iPad Pro (iOSは12.2)
  • ロジクール社 CREATE FOLIO FOR iPad Pro 9.7

CREATE FOLIO FOR <span class='lowerCase'>iPad Pro</span> 9.7 AND 12.9 INCH

https://www.logicool.co.jp/ja-jp/product/create-ipad-pro-keyboard#specification-tabular

iOS上のChromeからAlibaba Cloud コンソールにログインし、ECSインスタンスにVNCで接続します。

キーマップの確認結果は以下の通りです。  当たり前のことですがキーボードどおりに文字が入力出来ました。

LinuxのECSについてはこれで全く問題はありません。しかし、Windows 環境を操作する場合は色々と癖というかキー入力のお作法があるので常時このiPad環境で操作しようとは思いません。 緊急的にVNC接続したいという時には役立っています。

3. まとめ

VNC接続が必要になるケースは、ECSインスタンスの展開直後や会社ネットワークの都合でSSHやRDPによる接続が利用できないケース、OSは起動しているがネットワーク経由で接続出来ない場合のトラブルシューティングになると思います。Alibaba Cloud のVNC 機能が日本語キーボードに未対応な現状、緊急事態に備えて接続できる環境の準備、心構えはしておいた方がよいでしょう。

業務システムとしてAlibaba Cloud を利用している場合は英語キーボードを利用できる環境を常設することをお勧めします。 緊急時に@や:を打てずにそもそもログイン出来ないという状況は避けるべきだからです。 

まあ、今回紹介した操作端末側でキーボードレイアウトを変更する方法でほとんどのケースに対応出来ると思います。この場合、記号を中心にキーのマップを事前に確認しておくとよいかと思います。 ログイン認証を何度も失敗することを避ける、設定ファイルやソースコードの修正などスムーズに行う、などの事前準備となります。