Windows10に搭載されているPowerShellにSSHで接続できるようにする方法を紹介します。
はじめに:SSHとは?
どのOSであっても、シェルと呼ばれるソフトウェアが必ず装備されています。Windowsでは「コマンドプロンプト」、Macでは「ターミナル」、Linuxでは「bash」などとと呼ばれています。
SSHとは、そういったシェルにリモート接続することができるプロトコルです。
SSHを使うことで、リモートにあるコンピューターをコマンドにより操作することができるようになります。Linuxではよく使われていますが、WindowsでもPowerShellにリモート接続できるようになっており、かんたんにセットアップが可能です。
当記事では、SSHを使用して、Windowsマシンにリモート接続できるようにする手順を紹介します。
リモートからPCを操作するためには、リモートデスクトップという方法もあります。
リモートデスクトップはGUIに接続することができるため、マウスを使用して、いつもどおり作業することができます。
一方、SSHはCLI(コマンドラインインターフェース)に接続するためのプロトコルです。GUIには非対応ですので、マウス操作はできません。一方で、低帯域のネットワークでも軽快に動作するというメリットがあります。また、バッチ処理をしたり、リモートにあるマシンにリモートデスクトップ接続がうまくいかなくなったときの対応には大いに威力を発揮します。
セットアップ
さっそくセットアップ開始!
【手順1】OpenSSHをインストール
まず、SSHサーバーにあたる「OpenSSH」をインストールします。
OpenSSHははじめからWindows10に搭載されていますので、ダウンロードは不要です。ただ、デフォルトでは使用できない状態なので、インストールを行う必要があります。
スタートから「設定」>「アプリ」>「オプション機能」を開きます。
「機能の追加」をクリックし、「OpenSSHサーバー」(なければ「OpenSSH」でOK!)を選択。インストールをクリックします。
インストールされました!
サイズは5MBくらいと非常にコンパクト。手軽に導入できますね!
【手順2】ファイアウォールを許可する
OpenSSHがインストールできたら、ファイアウォールの設定を変更し、外部からのSSH接続を許可します。
スタートを開いた状態にし、キーボードで「firewall」と入力します。
表示された結果から「Windows Defender ファイアウォール」をクリックします。
すると、「セキュリティが強化されたWindows Defenderファイアウォール」というウィンドウが開きます。
SSH接続ができるようにルールを追加しましょう。
左のツリービューで「受信の規則」が選択されていることを確認し、「新しい規則」をクリックします。
「ポート」を選択し、次へ。
「TCP」と「特定のローカルポート」を選択して、ポート番号に「22」を指定します。
「接続を許可する」を選択し、次へ。
すると、ルールを適用する(SSH接続を許可する)エリアを聞かれます。
パブリックのチェックを外すと、コンピューター(接続される側のPC)が家の外のネットワークに接続されているときはSSH接続をブロックします。
わからない場合はプライベートのみチェックし、ほかは外しておきましょう。
最後に名前を設定します。ここでは「ssh」としておきました。
終わったら「完了」をクリック。
ルールが追加されました。
【手順3】OpenSSHを起動する
最後にOpenSSHサービスを起動します。
リモートからのSSH接続は、最初にインストールしたOpenSSHというソフトウェアで処理されます。インストールしただけではOpenSSHは起動していませんので、「サービス」からOpenSSHを起動し、SSH接続を受け付ける状態にしましょう。
スタートを表示させた状態でserviceと入力し、「サービス」を開きます。
「OpenSSH SSH Server」をダブルクリックします。
どれか一つ選択した状態で、キーボードの「O」キーを押すと、Oから始まる項目にジャンプできます。
エクスプローラーでファイルを探すときにも使えるワザですので、ぜひ使ってみてください!
「サービスの状態」から「開始」をクリックします。
これによりOpenSSHが起動し、晴れてSSHできるようになりました。
「スタートアップの種類」を「自動」にしておくと、PC起動時に自動的にOpenSSHが起動するようになります。
TeraTermから接続してみよう
これでSSHの準備は整いました!
さっそく、ターミナルアプリから接続してみましょう。
ここではTeraTermを使用してみます。TeraTermでなくても、SSHクライアントとして動作するアプリケーションであれば、なんでも結構です。PuTTYでもOK!
TeraTermのメニューバーから「ファイル」>「新しい接続」をクリックします。
「ホスト」に接続先のコンピューターのIPアドレスを入力し、ポートが「22」になっていることを確認します。
IPアドレスはコマンドプロンプトで調べることができます。コマンドプロンプトでipconfig
と入力しEnterを押すと、IPアドレスが表示されます。
> ipconfig
イーサネット アダプター イーサネット:
IPv4 アドレス . . . . . . . . . . . .: 192.168.100.150
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: 192.168.100.1
ログイン情報を要求されますので、ユーザーとパスワードを入力し、OKをクリック!
接続できました~
うまく接続できないときは?
まずは、ネットワークまわりを確認してみてください。
ファイアウォールやネットワークプロファイル(プライベートかパブリックか)の設定に問題があると、うまく接続できません。
うまく接続できないときのチェックポイント
- 接続してからしばらくしてエラー(タイムアウト)となっている場合
→ファイアウォールが怪しいです。ポート22/TCPがきちんと開放されているか確認しましょう。
- 接続直後に弾かれる場合
→ファイアウォールはおそらく大丈夫。
OpenSSHが正しく起動しているか確認しましょう。
接続はできるが、ログインできないときは、ユーザー名が正しいか確認しましょう。
とくにMicrosoftアカウントでログインする設定となっている場合は要注意!
メールアドレスの一部がユーザー名となっている場合があります。ログインに使用するユーザー名はコマンドプロンプトでwhoami
を実行して確認できます。
>whoami
pcn01\user01
この場合user01
がユーザー名です。間違わないように注意しましょう~
まとめ
Windows10のPowerShellにSSH接続する方法を紹介しました。
よく使われているリモートデスクトップとは違い、CLIでの操作しかできませんので、通常の使用においては実用性は乏しいのかもしれません。
しかし、リモートデスクトップしている際にフリーズしてしまい、リモートからPCを再起動させたい場合に非常に便利です。
実際、自分がSSHを導入した理由もそれです。遠方にあるPCにリモートデスクトップしていたところフリーズしてしまい、操作不能になってしまったんですよね。SSHでPowerShellに接続できれば、リモートデスクトップ接続はできなくても、PCを再起動したりすることができます。
リモートデスクトップを利用する際は、転ばぬ先の杖としてSSHも構築しておくのがおすすめです。
コメント