こんにちは。
グローバルソリューション事業部の渡辺です。
今回のテーマは、“Mosh-Chromeを業務で使う”です。
“インストールして使う”というところまでは、後述するように別の日本語記事(MOONGIFTさん)でも説明がありましたので、それに続く形で下記二つの方法を説明したいと思います。
- 公開鍵認証を使う
- コピー&ペーストを使う
Moshとは何か
今回説明するMosh-Chromeは、ChromeアプリとしてMoshを使えるものです。
MoshはSSHの代替であり、プロトコルでもあり、ソフトウェアでもあります。
メリットをざっくり言うと、Moshを使えばネットワークが不安定な状況でもSSHと比べて接続が快適になります。
こちらの説明がわかりやすいです。
mosh: MITからモバイル時代のSSH代替品
ネットワーク品質の良い日本国内にクライアントもサーバもあるとあまり変化を感じないかもしれませんが、 ネットワークが劣悪な環境にいる場合にはかなりの効果を発揮します。
「SSHが切れて切れて困るわー」って方は、ぜひ試してみてください。
Moshサーバのインストール
Moshはサーバとクライアントの両方にインストールする必要があります。
Moshの公式サイト に載っていますが、サーバへのインストールは簡単です。
Fedoraなら、yum install mosh だけです。
(CentOSならEPELリポジトリを導入する必要があります。)
Moshクライアントのインストール
WindowsでSSHを使っている人はTeratermやPuttyを使っている人が多いと思います。
残念ながら、現状それらのソフトでMoshは使えないようです。
Windowsの人は今まではCygwinのmoshを使うしかありませんでした。
普段からCygwin使っている人はともかく、moshだけのためにCygwinを入れるのはちょっと・・・という方もいると思います。
上記のような状況なので、Windowsの場合は導入の閾が少し高かったわけですが、 少し前にMosh-ChromeというGoogle Chromeブラウザのプラグインようなものがでました。
これを使えば、Windowsでも利用できます。
なお、Macの場合は簡単で、 brew install mobile-shell だけです。
Mosh-Chromeのインストール
MOONGIFTさんで紹介されているとおりです。
Mosh Chrome – Native Client製。Google Chrome用Moshクライアント
こちらの記事では公開鍵認証が使えないとありますが、今は使えるようになっています。
Mosh-Chromeの公開鍵認証の使い方
Key based ssh Authenticationで紹介されています。
(秘密鍵をブラウザに登録するのは、セキュリティ的にどうか?というのはありますが。)
ただ、少しわかりにくいので、以下に設定例を載せます。
1. chrome://extensions の設定
ChromeブラウザのURL欄にchrome://extensionsと入力し、拡張機能画面にアクセス、デベロッパーモードをオンにします。
その後、mosh client.html というところをクリックしてください。Chrome Consoleが起動します。
2. 秘密鍵をブラウザが読める形式に変換
秘密鍵をブラウザが読める形式に変換します。
先ほどのKey based ssh Authenticationでは、このように書いてあります。
$ sed -e ‘s/$/\n\/’ < PATH_TO_PRIVATE_KEY
要するに秘密鍵の各行末尾に \n\ を追記し、最終行だけは、\n を追記するということです。
参考までにこんな感じになります。 (なお、下記の秘密鍵はテスト用であり、実際は使っていません)
実際の秘密鍵
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAxWYR3DpALQuQfknWGVm3ICtRHYEAJtlNaIY/mghATtHShKm7 8BEgfIKGDLvkysFR5a3c8b16CNA/kqRz2ws1bM+/U8W1zi2LR9LZqPQhpj38nG7f n+kFU9ZnHM7SEIgfbMFlkFTqzfIErPgk4vGZpiOX2/3XwWaovZAsWfLh+0ID4in4 Impo3dApeOaOTWhi3e/j3Z7sgmfQxNvbN8xpuh6R/UOD93m0m+qXwqOjSEvOzAXu id710VtX3BTtRNQF5lDR7HaMbupZcNvS4Bd2/hQ65aZcyjt7NPZvDzer4Ys4AQkK zG+9BTycssq6/DaoTM+oK3yqFbhwcKgtB808SwIBIwKCAQEAmEds3Rb+TqKFaLyd 2Qqx1vzYLLP4zYMP1EpOUkDhJtxgkjnLfq4gYAzrESM7d9b2CPPWVBXTK17R9MgB mlkalcTVbIKTkGxG36Kn6LxUeO39YrvuVsmzpxMcWA1C9s9osvuXffhdXQsoLal7 in/c7eDxfdJzPWxziuuP7Z4cCvcOazvsO6+g3gOTQRmwfSHfsVFZTm1QoKJ/hKTy IzkQEOCuhgVAzUY9lEwS0+OVx3lBs6RErWjTg++olN6W42Udf8gMDXtDizds3Gbn 0iPHlGcNbWuXfiPqHNpUTJ6Hyirh5KTvgWtIJ5eksg3IWKI3LH9FV1YfHfYNvG5r wEWdMwKBgQDnakGEyRiw9//jIzwCcSFFRu+T5jPIjnp6cGmkBEFIk6DPEPoh+Hm9 /bi+i3t8mXuTv9ZmsZD/RowT6EDIAXQ/sdCMY0IUu7bjC8J8j1B3mjoMz0zrfBjw vyDfC46MbJyVXaOripNUxJepVzg5DCvdLqHTEcqNnm54HQpdwnLiZwKBgQDaXq28 YUggQUbmQ6Wwj2cOlLNN+gzX4VOUlYlvGNjc6q/XNRMqcCmmyv6kXV/yvzMLzfvG hbyYgPdpa70V0MBBJo/qD27BVBGKdszUeUNIhwi93dd0CW8+iVI/Lo/ExDJOaArT dCtpiJSGKOjwAeMuQ0/2eRMQktIfaNXIVZfQfQKBgQCyhSs6jIDDCHTxDI1g+C+b 16Lfztd9dTnpbKlEA0hN7jo5Vj1NZ+jjBY6EXPjcdmalLZbEP9ZBRQz5agYWogk4 czp67Xwen2/TuJ1YxlQEfkoJ4b7+zXJTUZ0D1bcb3sHvkWEArLrMXSSJ8tOZuO6j T9vr98gkGyIE4zPh7cZW4QKBgQDUIXWSbSF+a0wwJHUR6mQcyvdTECm7xPIbT2+Q fomGJc9jWCE/KyElr0CCaVXkfzjm5Vr7XVgfHjIr5QDTXRKIbppuWCJyqXAgG6Jo AMUEoG7kU9icm3NhUjKjxtTNxee54WmaNlYOvzEx3pkjqg/jzFxOhD5n3xVDFWH1 z32IswKBgE+kkjLyl2zlDVnxDAylMpFa0dp/zL4YHMtGn/hhXxIobB7mqDy4/VRQ 3uYieBhsK3sTEu0SygKDyf7G9iok0cKlK1jP4TCUrd2QPZTbFcU0oSg64LVMJqMb kOU6lHqxqP+/ljildMTV5enoDk8MOs2QB23j+3ofjhJzu0MhEfj6 -----END RSA PRIVATE KEY----- |
秘密鍵の末尾に追記したもの
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
-----BEGIN RSA PRIVATE KEY-----\n\ MIIEowIBAAKCAQEAxWYR3DpALQuQfknWGVm3ICtRHYEAJtlNaIY/mghATtHShKm7\n\ 8BEgfIKGDLvkysFR5a3c8b16CNA/kqRz2ws1bM+/U8W1zi2LR9LZqPQhpj38nG7f\n\ n+kFU9ZnHM7SEIgfbMFlkFTqzfIErPgk4vGZpiOX2/3XwWaovZAsWfLh+0ID4in4\n\ Impo3dApeOaOTWhi3e/j3Z7sgmfQxNvbN8xpuh6R/UOD93m0m+qXwqOjSEvOzAXu\n\ id710VtX3BTtRNQF5lDR7HaMbupZcNvS4Bd2/hQ65aZcyjt7NPZvDzer4Ys4AQkK\n\ zG+9BTycssq6/DaoTM+oK3yqFbhwcKgtB808SwIBIwKCAQEAmEds3Rb+TqKFaLyd\n\ 2Qqx1vzYLLP4zYMP1EpOUkDhJtxgkjnLfq4gYAzrESM7d9b2CPPWVBXTK17R9MgB\n\ mlkalcTVbIKTkGxG36Kn6LxUeO39YrvuVsmzpxMcWA1C9s9osvuXffhdXQsoLal7\n\ in/c7eDxfdJzPWxziuuP7Z4cCvcOazvsO6+g3gOTQRmwfSHfsVFZTm1QoKJ/hKTy\n\ IzkQEOCuhgVAzUY9lEwS0+OVx3lBs6RErWjTg++olN6W42Udf8gMDXtDizds3Gbn\n\ 0iPHlGcNbWuXfiPqHNpUTJ6Hyirh5KTvgWtIJ5eksg3IWKI3LH9FV1YfHfYNvG5r\n\ wEWdMwKBgQDnakGEyRiw9//jIzwCcSFFRu+T5jPIjnp6cGmkBEFIk6DPEPoh+Hm9\n\ /bi+i3t8mXuTv9ZmsZD/RowT6EDIAXQ/sdCMY0IUu7bjC8J8j1B3mjoMz0zrfBjw\n\ vyDfC46MbJyVXaOripNUxJepVzg5DCvdLqHTEcqNnm54HQpdwnLiZwKBgQDaXq28\n\ YUggQUbmQ6Wwj2cOlLNN+gzX4VOUlYlvGNjc6q/XNRMqcCmmyv6kXV/yvzMLzfvG\n\ hbyYgPdpa70V0MBBJo/qD27BVBGKdszUeUNIhwi93dd0CW8+iVI/Lo/ExDJOaArT\n\ dCtpiJSGKOjwAeMuQ0/2eRMQktIfaNXIVZfQfQKBgQCyhSs6jIDDCHTxDI1g+C+b\n\ 16Lfztd9dTnpbKlEA0hN7jo5Vj1NZ+jjBY6EXPjcdmalLZbEP9ZBRQz5agYWogk4\n\ czp67Xwen2/TuJ1YxlQEfkoJ4b7+zXJTUZ0D1bcb3sHvkWEArLrMXSSJ8tOZuO6j\n\ T9vr98gkGyIE4zPh7cZW4QKBgQDUIXWSbSF+a0wwJHUR6mQcyvdTECm7xPIbT2+Q\n\ fomGJc9jWCE/KyElr0CCaVXkfzjm5Vr7XVgfHjIr5QDTXRKIbppuWCJyqXAgG6Jo\n\ AMUEoG7kU9icm3NhUjKjxtTNxee54WmaNlYOvzEx3pkjqg/jzFxOhD5n3xVDFWH1\n\ z32IswKBgE+kkjLyl2zlDVnxDAylMpFa0dp/zL4YHMtGn/hhXxIobB7mqDy4/VRQ\n\ 3uYieBhsK3sTEu0SygKDyf7G9iok0cKlK1jP4TCUrd2QPZTbFcU0oSg64LVMJqMb\n\ kOU6lHqxqP+/ljildMTV5enoDk8MOs2QB23j+3ofjhJzu0MhEfj6\n\ -----END RSA PRIVATE KEY-----\n |
3. Chrome Consoleで秘密鍵を登録
そして、Chrome Console上でssh_keyという変数に代入します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
ssh_key = "-----BEGIN RSA PRIVATE KEY-----\n\ MIIEowIBAAKCAQEAxWYR3DpALQuQfknWGVm3ICtRHYEAJtlNaIY/mghATtHShKm7\n\ 8BEgfIKGDLvkysFR5a3c8b16CNA/kqRz2ws1bM+/U8W1zi2LR9LZqPQhpj38nG7f\n\ n+kFU9ZnHM7SEIgfbMFlkFTqzfIErPgk4vGZpiOX2/3XwWaovZAsWfLh+0ID4in4\n\ Impo3dApeOaOTWhi3e/j3Z7sgmfQxNvbN8xpuh6R/UOD93m0m+qXwqOjSEvOzAXu\n\ id710VtX3BTtRNQF5lDR7HaMbupZcNvS4Bd2/hQ65aZcyjt7NPZvDzer4Ys4AQkK\n\ zG+9BTycssq6/DaoTM+oK3yqFbhwcKgtB808SwIBIwKCAQEAmEds3Rb+TqKFaLyd\n\ 2Qqx1vzYLLP4zYMP1EpOUkDhJtxgkjnLfq4gYAzrESM7d9b2CPPWVBXTK17R9MgB\n\ mlkalcTVbIKTkGxG36Kn6LxUeO39YrvuVsmzpxMcWA1C9s9osvuXffhdXQsoLal7\n\ in/c7eDxfdJzPWxziuuP7Z4cCvcOazvsO6+g3gOTQRmwfSHfsVFZTm1QoKJ/hKTy\n\ IzkQEOCuhgVAzUY9lEwS0+OVx3lBs6RErWjTg++olN6W42Udf8gMDXtDizds3Gbn\n\ 0iPHlGcNbWuXfiPqHNpUTJ6Hyirh5KTvgWtIJ5eksg3IWKI3LH9FV1YfHfYNvG5r\n\ wEWdMwKBgQDnakGEyRiw9//jIzwCcSFFRu+T5jPIjnp6cGmkBEFIk6DPEPoh+Hm9\n\ /bi+i3t8mXuTv9ZmsZD/RowT6EDIAXQ/sdCMY0IUu7bjC8J8j1B3mjoMz0zrfBjw\n\ vyDfC46MbJyVXaOripNUxJepVzg5DCvdLqHTEcqNnm54HQpdwnLiZwKBgQDaXq28\n\ YUggQUbmQ6Wwj2cOlLNN+gzX4VOUlYlvGNjc6q/XNRMqcCmmyv6kXV/yvzMLzfvG\n\ hbyYgPdpa70V0MBBJo/qD27BVBGKdszUeUNIhwi93dd0CW8+iVI/Lo/ExDJOaArT\n\ dCtpiJSGKOjwAeMuQ0/2eRMQktIfaNXIVZfQfQKBgQCyhSs6jIDDCHTxDI1g+C+b\n\ 16Lfztd9dTnpbKlEA0hN7jo5Vj1NZ+jjBY6EXPjcdmalLZbEP9ZBRQz5agYWogk4\n\ czp67Xwen2/TuJ1YxlQEfkoJ4b7+zXJTUZ0D1bcb3sHvkWEArLrMXSSJ8tOZuO6j\n\ T9vr98gkGyIE4zPh7cZW4QKBgQDUIXWSbSF+a0wwJHUR6mQcyvdTECm7xPIbT2+Q\n\ fomGJc9jWCE/KyElr0CCaVXkfzjm5Vr7XVgfHjIr5QDTXRKIbppuWCJyqXAgG6Jo\n\ AMUEoG7kU9icm3NhUjKjxtTNxee54WmaNlYOvzEx3pkjqg/jzFxOhD5n3xVDFWH1\n\ z32IswKBgE+kkjLyl2zlDVnxDAylMpFa0dp/zL4YHMtGn/hhXxIobB7mqDy4/VRQ\n\ 3uYieBhsK3sTEu0SygKDyf7G9iok0cKlK1jP4TCUrd2QPZTbFcU0oSg64LVMJqMb\n\ kOU6lHqxqP+/ljildMTV5enoDk8MOs2QB23j+3ofjhJzu0MhEfj6\n\ -----END RSA PRIVATE KEY-----\n" |
最後にChrome Console上で下記を入力します。
1 |
chrome.storage.local.set({"ssh_key": ssh_key}, function() { console.log("ok"); }) |
これでMoshは登録した秘密鍵を利用して接続しに行きます。
コピー&ペーストの方法
最後にMosh-Chrome使用時のコピー&ペーストの方法を紹介します。
メニューバーや右クリックで何も表示されないので、知らないと戸惑います。
・コピー
マウスで文字を選択するだけです。
はさみマークが表示されます。
・ペースト
Ctrl+Shift+v です。
それでは。