※この記事はQiitaEngineerFesta 2022 「remote.it を使って○○に接続してみた!」に参加するために執筆した記事です。
TL;DR
- 義実家のIT環境のメンテナンスを行うために、Windows PCにremote.itを入れてみた
- iPhoneやMacから接続してアプリケーションの追加やファイルの授受が可能か確認した
- 物理故障には対応できないが、簡単なメンテナンスや設定変更には有用であることがわかった
挨拶と背景
こんにちは、株式会社dottでエンジニャー🐱をしているHALと申します。
Qiitaをご覧の皆さんは、エンジニアもしくはそれに近い技術系の素養を持っている方たちだと思います。
エンジニアからすると、PCセットアップなどは大した作業ではありませんが、一般の人たちにとっては実は結構難しいと感じられている、ということがよくあります。
特に皆さんのご両親(結婚されていれば義両親)や親戚なども、ITは苦手という人が多いのではないでしょうか。
僕の両親は、父がITエンジニアなのでそういったことはありませんが、妻の両親や親類にはエンジニアの人はいないため、ITは苦手という人ばかりです。
そんなわけで義実家のIT環境を改善してあげたいなぁと思ったりするのですが、車で1時間弱かかる距離なので、平日に気軽に行けるというわけではありません。
いくらかの設定だけでも外からリモートでできたらなぁと思いつつ、固定IPやらポート開放やらセキュリティやらと、ちょっと気軽にやれる感じでもないよなぁ、と二の足を踏んでいました。
なんてことを考えていたら、Qiita Engineer Festaの企画でremote.itの存在を知り、「これだ!!」と思ったのでちょっと環境を作ってみようと思います。
remote.itの良いところ
最初に、今回のリモートメンテナンス環境を作るに当たり、remote.itを使うと何が嬉しいかをまとめておきます。
- IPアドレスを固定する必要がない
- IPアドレスを固定しようとするとプロバイダ側の設定を調べたりしないといけないけど、義実家なのでプロバイダの契約周りまで聞くのもちょっと厳しいですが、remote.itなら固定IPが不要なので調べなくて済みます
- ルーターの設定を変更する必要がない
- 外部から直接PCに繋がるようにするためには、ルーター側の設定を変更してポート開放などをしてあげないといけません。自分で買ったルーターじゃないのでちょっと面倒ですが、remote.itでは接続したいPCがインターネットにアクセスできればいいので、設定変更が不要です。
- セキュリティ的な不安が減る
- 自分もネットワークの専門家というわけでもないので、ポート開放などをセキュリティを担保して実施するのが難しい、という点がありますが、remote.itでは何も開放しなくていいので安心できます
- 簡単にWindows PCに直接つながるので、その後はいかようにもできる
- 接続先のPCを起動すれば接続できるようになる(remote.itは自動起動する)ので、繋ぐために義両親らに難しい操作をお願いする必要がありません。その後はSSHやリモートデスクトップでいろいろ操作できてしまうので、電話での指示なども必要ありません。
-
重要:個人なら無料で利用できる
- やはりこれは大事。少なくとも初期導入時のハードルが低いので助かります。
簡単に、気軽に始められるので、運用がうまく回らなかったらどうしよう、とか考えなくて済むのが特に良いですね。
構成
システムの構成は、いたってシンプルです。
- 接続元iPhone/Mac(自宅)
- 接続先Windows(義実家)
- インターネット(固定回線)経由
- remote.it
ちなみに、固定回線やルーターの障害時に対応できるよう、接続先PCにモバイルWi-FiやSIMカードを使うことも検討しましたが、義実家は山の中で、携帯の電波も不安定なのでやめました・・・。
ネットワークを冗長化することができたら、より安定したメンテナンス環境が構築できそうですね。
構築手順
では、実際にメンテナンス環境を構築していきましょう。
remote.itに登録する
まずはremote.itにユーザー登録します。
メールアドレス・パスワードのみの登録でOKで、クレジットカード情報などは登録せず試せます。
サイトにアクセスし、右上の「はじめる」から登録していきます。
なお、Googleアカウントでも登録可能なようですが、その場合はサインアップの画面からではなく、サインインの画面の方から行くような導線になっているようです・・・。
ここはちょっと謎。
接続先Windowsにremote.it Desktopアプリをインストールする
続いて接続先のWindowsにデスクトップアプリをインストールします。
こちらから対応するWindows用アプリを選択します。
今回はデスクトップアプリなので一番上のものを選びます。
ダウンロードしたらダブルクリックしてインストーラを起動し、特にこだわりがなければデフォルト設定でぽんぽん入れちゃいましょう。
インストールが終わったらアプリケーションを起動します。
(インストーラの最後にアプリケーションを起動するチェックボックスがあるので、そのまま起動でもOK)
起動するとサインイン画面が出るので、サインインしましょう。
こんな画面か
こんな画面が表示されればOKです。
(Windowサイズによって表示が変わります。)
Windowsのリモート接続機能を許可する(SSHサーバーのインストール)
続いて、リモートから接続する際に使用する機能を許可します。
一番楽なのはリモートデスクトップですが、Windows Pro以上でないと使用できないため、今回は泣く泣くSSHで我慢します。
「設定画面」→「アプリ」→「オプション機能」を選択します。
「オプション機能を追加する」の「機能を表示」をクリックし、OpenSSHサーバーにチェックを入れて「次へ」→「インストール」とクリックします。
インストールが完了したら、スタートメニューを右クリックし、「コンピュータの管理」をクリックします。
左ペインの「サービスとアプリケーション」の中の「サービス」を選択し、真ん中のエリアに表示された一覧から「OpenSSH SSH Server」を選択して、「サービスの開始」をクリックします。
SSH接続する際にはMicrosoftアカウントではなくローカルアカウントが必要なので、追加します。
スタートメニューから「設定」→「アカウント」の順に選択し、「家族とその他のユーザー」を選択します。
「他のユーザー」の「アカウントの追加」をクリックします。
ここからがちょっと厄介です。変なところばかりクリックします。
以下のような画面が表示されるので、「このユーザーのサインイン情報がありません」を選択します。
次の画面では「Microsoftアカウントを持たないユーザーを追加する」をクリックします。
ユーザーIDとパスワード、秘密の質問を3つ(!)入力し、「次へ」をクリックします。
これで、接続用のローカルアカウントが作成できました。
このアカウントで何でもできるようにしたいので、管理者権限に変更しておきましょう。
オプションのメニューを開いて「アカウントの種類の変更」をクリック
アカウントの種類で「管理者」を選んでOKとします。
なお、ローカルアカウントの作成直後だと、SSH接続しても以降の手順でインストールするwingetが実行できない事象が発生することがあるようです。
ローカルアカウント作成後はローカルアカウントで一度サインインをしておく必要があります。
また、幸運にも接続先PCがWindows Proでリモートデスクトップが使える場合は、リモートデスクトップ接続の設定をしておきましょう。
WindowsだとRDPの方がどう考えても色々便利ですので・・・。
remote.itに接続先PCを追加する
続いてremote.itの設定を進めていきます。
remote.itのデスクトップアプリを開き、メニューの+ボタンから「This system」を選択します。
少し待つと、接続可能なサービスの一覧が表示され、その中に「ssh」も入っていることが確認できると思います。
Windows Pro以上のエディションで、RDPが利用可能な場合はここにRDPも出てきます。
名前の変更や使わないもののチェックを外すなどして、「REGISTER」をクリックすれば、登録完了です。
おまけ)Wingetのインストール
IT環境メンテナンスのために、アプリケーションのインストールなどができる環境を用意しておいたほうが良いと思うので、Wingetをインストールしておきます。
WingetはWindows向けのPackage Managerです。
※この操作は作成したローカルアカウントで実施してください
WingetはMicrosoft Storeからインストールします。
スタートメニューの検索バーに「Microsoft Store」と入力し、Microsoft Storeを起動します。
さらに検索バーに「インストーラー」と入力して、「アプリインストーラー」を選択します。
インストール後、「Windowsターミナル」を開き、「winget -v」を実行して結果が表示されればOKです。
PS C:\Users\harer> winget -v
v1.2.11601
iPhoneからアクセスしてアプリケーションを追加してみる
せっかくなので(?)、パソコンではなくスマホからアクセスしてアプリケーションを追加してみます。
まず、iPhoneにremote.itのアプリをインストールします。
App Storeで「remote.it」と検索すればすぐ出てきます。
インストールしたアプリを起動したら、とりあえず登録したアカウント情報でサインインします。
サインインしたらこんな画面が出てくるかなと思います。
「1 Devices Online」をタップするとアクセス可能なデバイスの一覧が表示されます。
(1個しかないのでちょっとわかりにくいですが・・・)
対象のデバイス名をタップするとどの接続方法を利用するかが選択できます。
今回は「SSH」を選択します。
ここまで来たらあとは「CONNECT」をタップすればOKです。
接続に成功すると接続用のアドレスが払い出されます。
このアドレスが知られてしまうと他人にもアクセス可能となってしまうので気をつけましょう。
ちなみに、iPhoneの場合は標準だと「Termius」というSSHクライアントアプリが選ばれています。
特にこだわりがなければ、Termiusをインストールしておくと、「🚀LAUNCH」をタップするとそのままTermiusで接続してくれます。
では、圧縮ファイルを送って解凍してもらうために、7-Zipをインストールするという想定で、以下のコマンドを打ち込んでみましょう。
(標準でZipは解凍できるので現実的にはあまり必要ありませんが・・・)
Winget install 7zip.7zip --scope machine --source winget
Wingetなどのセットアップがちゃんと出来ていれば、正しくインストールされるはずです。
なお、--scopeを忘れると、ログインしているローカルアカウントにのみインストールされてしまうので注意しましょう。
また、一部のアプリケーションはmachineインストールに対応していないものがあります。
その場合は、以下のようにrunasコマンドを使って対象のユーザーアカウントに対してインストールが必要です。
runas /user:target_user "winget install hogehoge"
ちなみに、7-Zipについては--sourceの指定をしないとエラーでインストールができませんでした。
その他のアプリケーションを入れる際も、うまく行かない場合はsourceの指定を追加してみてください。
上の方のエラーはsourceを指定しなかったためエラーになったものです。
sourceを指定したらうまくインストールができました。
Macから接続してファイルをやり取りしてみる
続いて、Samba(Windowsファイルサーバー共有)を利用してファイルをやり取りしてみます。
ファイルのやり取りの前に、接続先PCに共有フォルダを作っておく必要があるので、作成します。
まず適当なドライブに適当なフォルダを作成しましょう。
今回はD:\test\sharedというフォルダを作成しました。
作成したフォルダを右クリックして「プロパティ」を選択します。
「共有」タブの「共有」ボタンをクリックします。
入力欄に「everyone」と入力して追加し、「アクセス許可のレベル」を「読み取り/書き込み」にしておきます。
対象のユーザーがeveryoneではなく特定のユーザーに絞っておきましょう。
接続先の事前作業は以上です。
続いて、接続元のMacでの作業です。
接続元でもremote.itをインストールしてログインします。
(インストール手順は割愛します)
対象のノートPCのsmbを選びます。
「ADD TO NETWORK」をクリックすると、接続できる状態になります。
ここで「LAUNCH」をクリックすると、Macのサーバへの接続ウインドウが開きます。
Windows側のユーザーIDとパスワードを入力して「接続」をクリックします。
つづいて接続先の共有ドライブの選択画面が出てきます。
ここに先ほど作成した共有ドライブが表示されますので、それを選択して「OK」をクリックします。
おめでとうございます!ドライブの共有ができました!!
あとは好きなようにファイルをコピーしてやれば、Windowsの共有フォルダの方にファイルが入っていることが確認できるはずです。
まとめ
remote.itを使って、WindowsにSSHでアクセスして操作したり、ファイルをやり取りする環境を簡単に整えることができました。
外部からのアクセスの環境を作るには、一昔前だとポート開放とかセキュリティの考慮とか、少しハードルが高い印象でしたが、remote.itを使えば、セキュアな接続が手軽に作れるのでいいですね。
また、昔はWindowsというとGUIで接続しないとアプリケーションのインストールなども辛い印象でしたが、SSHが公式で提供され、wingetも普及してきたため、CUIのみでも比較的操作がしやすくなったように思います。
実家(今回は義実家ですが)で使っているPCとなると、Windows Homeということが多いと思います。
そんな時でもある程度の遠隔操作が可能になれば、何か問題があっても一次調査は遠隔で実施して、必要な機材などを揃えてから対応に向かう、みたいな事もできるので、足を運ぶ回数を減らすことも可能です。
逆に義実家に行っているときに自宅のPCを遠隔で操作するようなことも可能ですから、「あのファイル持ってくればよかった・・・」みたいな対応もできちゃいますね。
ただ、ぜひともMicrosoftさんには、Windows Homeにもリモートデスクトップを利用可能にしてほしいところです・・・。
そんなわけで皆さんも、実家のITメンテナンスをやらなきゃいけなくなったとき、リモートでも気軽にできる環境をremote.itで整備してみてはいかがでしょうか。