NECのラップトップLaVie G タイプZで、自前ビルドしたChromium OSを使い始めてからもう一か月半が経ちます。内蔵ドライブのWindowsを上書きするのはちょっとためらわれるので、USBメモリから起動して使っています。Windowsをいちおう残してはいますが、Chromium OSとWindowsのバッテリ駆動時間を比較するベンチマークを行なって以来、起動していません。
文書(図表の編集を含む)作成とWebブラウジングくらいであれば、まったくWindowsの出る幕がないです。Chromium OS本当にいいですよ。バッテリベンチマークではWindowsに負けましたが、実際の使用ではChromium OSのほうがやや長く持つように感じますし。最近では、もっと本格的に使うためにChromebookを購入しようかと考えています。
さて、ラップトップの用途ですが一つ書き忘れました。文書作成とブラウジングに加えて、サーバ管理の際のSSHクライアントとしても使っています。ここでも、Chrome上で動作するSSHクライアントのSecure Shell Appを使えばこと足ります。(Secure Shell Appの使い方については、下記二つのURLをご参照ください。)
- ChromeのSSHクライアント「Secure Shell」が公開鍵認証に対応!ブラウザだけでサーバー管理ができる時代に近づいた (Chrome Life)
- Chromebook Secure Shell 公開鍵認証でCentOSにSSH接続する (designetwork)
しかし、怠惰なもので、接続のたびに秘密鍵のパスフレーズを入力するのが面倒になってきました。こんなときはssh-agentですよね。Secure Shell Appでもssh-agent(と同等の機能)を使えないかと調べてみました。すると、ありました。SSH Agent for Google Chromeという拡張機能です。Secure Shell Appと組み合わせて使うと、接続ごとのパスフレーズ入力を省くことができます。
本記事ではSSH Agent for Google Chrome (以下、単にSSH Agentと呼びます)とSecure Shell Appを組み合わせた使用法を紹介します。でも、その前に以下の注意書きを必ずお読みください。
注: Chromeの同期が有効な場合、エージェントに登録した秘密鍵も同期の対象になります。したがって、秘密鍵は必ず十分な強度のパスフレーズで保護してください。秘密鍵が漏えいする可能性がゼロとはいえませんので、インターネットから直接アクセス可能なサーバやその他重要なサーバへのアクセス鍵は登録しないことをおすすめします。本拡張機能の使用は自己責任でお願いします。
納得いただけましたら、以下にお進みください。インストール、および設定の手順はSSH AgentのREADME (下記URL)に準じています。
インストール
まず、以下のURLにアクセスしてSecure Shell App、およびSSH Agentをインストールします。
秘密鍵の登録
SSH Agentをインストールすると、ブラウザのツールバーにアイコンが追加されますので、これをクリックします。
“Add Key”ボタンをクリックして秘密鍵を登録します。Nameには識別しやすい任意の名前をつけます。Private Keyには秘密鍵ファイルの内容をまるごとコピペしてください(-----BEGIN XXX PRIVATE KEY-----
から-----END XXX PRIVATE KEY-----
まですべて)。本記事の例では、RSA形式の秘密鍵を登録しています。(ECDSA鍵やED25519鍵については動作未確認です。)
“Add”ボタンをクリックすると秘密鍵が追加されます。
秘密鍵のパスフレーズ入力
次に、秘密鍵のパスフレーズを入力して秘密鍵をエージェントに読み込ませます。読み込ませたい秘密鍵の”Load”ボタンをクリックしてください。すると、パスフレーズの入力ダイアログが表示されますので、秘密鍵のパスフレーズを入力します。
入力後”OK”ボタンをクリックすると、秘密鍵の種別および内容が表示され、エージェントに読み込み済みであることが示されます。
SSH Agentでの設定は以上で終了です。
SSH接続
では、SSH接続を行なってみましょう。Chromium OSのランチャーボタン、あるいはURL chrome://apps
からSecure Shell Appを起動します。SSH Agentを使用するためには、”SSH 中継サーバーのオプション”の欄に--ssh-agent=eechpbnaifiimgajnomdipfaamobdfha
を追加してください。Secure Shell Appでの秘密鍵のインポートは不要です。
接続先情報の入力が終わったら、右下部にある「接続」をクリックします。下図の例のように、パスフレーズの入力を求められることなくログインが可能です。
ちなみに、「接続」の代わりに「SFTP マウント」をクリックすると、接続に使用したユーザのホームディレクトリをマウントできます(下図)。いったんマウントしてしまえば、ファイルアプリからローカルドライブと同様にアクセスできますので、これもとても便利ですよ。
参考文献
- Secure Shell App, https://chrome.google.com/webstore/detail/secure-shell-app/pnhechapfaindjhompbnflcldabbghjo
- ChromeのSSHクライアント「Secure Shell」が公開鍵認証に対応!ブラウザだけでサーバー管理ができる時代に近づいた, http://www.chrome-life.com/chrome/5629/
- Chromebook Secure Shell 公開鍵認証でCentOSにSSH接続する, http://designetwork.hatenablog.com/entry/2017/02/02/public-ssh-on-chromebook
- SSH Agent for Google Chrome™, https://chrome.google.com/webstore/detail/ssh-agent-for-google-chro/eechpbnaifiimgajnomdipfaamobdfha
- chrome-ssh-agent, https://github.com/google/chrome-ssh-agent