マイナビニュースマイナビ

OpenSSHでWindowsからリモートログインする

【連載】

PowerShell Core入門 - 基本コマンドの使い方

【第174回】OpenSSHでWindowsからリモートログインする

[2021/11/12 08:00]後藤大地 ブックマーク ブックマーク

これまで2回に渡り、WindowsへOpenSSHを使ってリモートログインする方法を説明してきた。WindowsにはOpenSSHサーバの機能が用意されているので、この機能を有効化していくつか設定を行えば、WindowsにOpenSSH経由でリモートログインできるのだ。逆に、WindowsにはOpenSSHクライアントの機能も用意されている。今回は、WindowsからほかのホストへOpenSSH経由でリモートログインする方法を説明する。

WindowsをOpenSSHクライアントとして使う

LinuxサーバやMacへのリモートログインにはOpenSSHを使うことが多い。そのため、Windowsにも何らかのかたちでOpenSSHクライアントをインストールして使ってる方が多いと思う。各アプリケーションのシェアはわからないが、ターミナルアプリケーションが持っているSSH機能を使ってリモートログインしたり、専用のSSHクライアントを使ったり、拡張機能を使ったり、WSLのOpenSSHを使ったり……と、いろいろな方法を使っているのではないだろうか。

あくまでもこうした方法の内の一つということになるが、ここではWindows 11やWindows 10にデフォルトで備えられているOpenSSHクライアントを有効化して使う方法について解説していく。

Microsoftは、デフォルトのターミナルアプリケーションとしてWindows Terminalを設定できるようにした。今後、「Windows 10のデフォルトターミナルはWindows Terminal」ということでほぼ確定すると考えられる。当然、デフォルトのシェルはPowerShell 7になる。そうなると、SSHクライアントとしてはデファクトスタンダードのOpenSSHをそのまま使うほうが良いだろう。MicrosoftはWindows 11やWindows 10に最初からOpenSSHクライアントを使う機能を統合しているので、当然、この機能を使ってOpenSSHをインストールする方法が説明される機会が増えるはずだ。

WSL2やMSYS2といったソフトウエア経由でOpenSSHクライアントを使うこともできるのだが、こちらはWSL2やMSYS2をアンインストールすると使えなくなる。例えば、認証鍵と設定をWSL2の環境に保持していた場合、WSL2の環境を削除すると消えてしまう。MSYS2のOpenSSHを使っているのなら、MSYS2をアンインストールすると当然ながら使えなくなる。リモートログインするための基本的なツールであるだけに、Windowsが提供している基本的な機能としてのOpenSSHクライアントを使っておくと、何かと問題となるケースを避けやすいのだ。

OpenSSHクライアントの有効化方法

OpenSSHクライアントの有効化は、設定アプリケーションで行う。Windows 11であれば、設定アプリケーションを起動し、「アプリ」→「オプション機能」→「オプション機能を追加する」の「機能を表示」を選択する。

設定アプリケーション:「アプリ」→「オプション機能」→「オプション機能を追加する」の「機能を表示」

オプション機能一覧から「OpenSSHクライアント」にチェックを入れ、「次へ」→「インストール」を選択してインストールを行う。

「OpenSSHクライアント」にチェックを入れ、「次へ」を選択

「インストール」を選択

OpenSSHクライアントのインストール完了

インストールが完了すると次のように「インストールされている機能」の一覧に「OpenSSHクライアント」が表示される。

OpenSSHクライアントがインストールされていることを確認

Windows 10でのOpenSSH有効化手順もほぼ同じだ。ラベル名が多少異なるが、ほぼ同じ要領でインストールすることができる。

認証鍵の生成と公開鍵の設置

次に、Windowsで認証鍵を生成し、公開鍵のほうをリモートログイン先へ登録していく。この作業を行うことでリモートログインできるようになる(認証鍵を使わないパスワード認証はやめておこう。認証鍵を使う方法を基本的な手段だと考えておきたい)。

ssh-keygen.exeコマンドで認証鍵を生成する。

ssh-keygen.exe

上記を実行すると次のようになる。

ssh-keygen.exeの実行サンプル

なお、途中で入力を求められる「パスフレーズ」というのは、秘密鍵にかけられるパスワードのようなものだ。パスフレーズを設定しておくと秘密鍵が窃取された場合などに時間稼ぎをすることができる。パスフレーズを設定しないこともできるので、どちらを選ぶかは求められるセキュリティレベルに合わせてもらえればと思う。

デフォルトのまま実行した場合、$HOME/.ssh/id_rsaと$HOME/.ssh/id_rsa.pubという2つのファイルが生成される。id_rsaが秘密鍵、id_rsa.pubが公開鍵だ。

生成される秘密鍵と公開鍵

この公開鍵の中身をリモートログインするホストの~/.ssh/authorized_keysファイルへ追記していく。公開鍵は1行の文字列になっているので、これを新しい行として追加すればよいと。ファイルやディレクトリを適切なものに設定してあれば、これでリモートログインできるようになる。

設定ファイルの作成

後は、対象となるホストに簡単にリモートログインできるように、ホストごとに設定を書いておく。次のような設定を$HOME/.ssh/configファイルへ書き込んでいけばOKだ。必要に応じて、ほかの設定もここに追加しておくと良いだろう。

Host 名前
        Hostname                リモートログイン先のIPアドレス
        User                    ユーザー名
        IdentityFile            ~/.ssh/秘密鍵ファイル

上記のように設定を書いておけば、以下のコマンド実行で対象のホストにリモートログインできる。

ssh 名前

リモートログインがうまくいかないときは、sshに-vvvといったオプションを追加して「ssh -vvv 名前」のようにコマンドを実行してみよう。大量のログが出力されるので、問題を見つけやすくなるはずだ。

OpenSSHとPowerShellでWindowsを使いこなす

これまでの設定でWindowsもLinuxサーバやMacと同じようにOpenSSH経由でリモートログインして操作する対象になった。同じ要領でWindowsからほかのホストへOpenSSHでリモートログインできるようにもなったし、操作感はLinuxやMacと大差がないはずだ。

次に考えたいのは、WindowsにOpenSSH経由でリモートログインした状態でさまざまなアプリケーションを実行したり、データを共有したりする方法だ。実は、OpenSSHでリモートログインした状態ではデスクトップアプリケーションを起動することができない。次回、この辺りをどうやってクリアしていくかを取り上げる。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で TECH+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
Slackで始める新しいオフィス様式
Google Workspaceをビジネスで活用する
人生を豊かにするパラレルキャリア~VUCA時代に新しい生き方を選ぶ理由とは~
ニューノーマル時代のオウンドメディア戦略
ミッションステートメント
次世代YouTubeクリエイターの成長戦略
IoTでできることを見つけるための発想トレーニング
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
マイクロサービス時代に活きるフレームワーク Spring WebFlux入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る