メニュー 閉じる

Windows OS で SSH 接続する場合の手順をまとめました。
【Windows Server 2016、2019、Windows 10】

「SSH でログイン」って聞くと何か難しい感じしませんか?
Windows ユーザーだと特に馴染みがなく、拒否反応を起こしやすいのではないでしょうか。

大丈夫です。SSH はWindows でも友達になれます。

今はWindows 10、WindowsServer 2019などに「OpenSSH」が同梱されているので、
今後はWindows ユーザーでもSSH 接続があたりまえになってくるかもしれません。

というわけで、明日のための「SSH クライアントの使い方」や、
OS 毎の「SSH サーバー設定方法」についてまとめました。

また、SSH 接続をするテスト環境についても触れてます。

Windows OS で SSH 接続する

SSH とは。

Secure Shell (セキュアシェル)

Secure Shell (セキュアシェル)の事で、安全にリモート接続する方法です。
通信が暗号化されたり、認証に暗号鍵を使用できたりといい事ばかりです。

また、この接続時のプロトコルの名前でもあります。バージョン1 と2 があります。

バージョン1 の時はそこまでセキュアではなかったようです。最近はバージョン2 が主流かと思います。

ssh コマンドでバージョン1 を指定しようとすると、「サポートしていない」旨のメッセージが表示されますし。

パケットキャプチャで確認すると、プロトコルのバージョンが確認できます。

Linux では一般的で、当たり前のようにSSH 接続するするみたいですね。
AWS でLinux のEC2 を触ったときにリモートする手段がSSH 接続しかなくて、ナニコレってなりましたが、
今は OpenSSH が同梱されるようになったので、Windows でも標準の機能としてSSH 接続が出来ます。

Windows でSSH 接続するには、「OpenSSH クライアント」というオプション機能をインストールします。

Windows ロゴマーク > 設定 >アプリ >アプリと機能 >オプション機能の管理( 機能の追加)

またOpenSSH が導入された事で、SSH 接続するだけでなく、
サーバーとしてSSH 接続を処理することもできるようになりました。

SSH 接続を処理するには、ログイン先のサーバーにSSH サーバー(sshd)をインストールします。

WindowsServer 2019

WindowsServer2019 は、SSH サーバー が機能の追加からインストール出来ます。

Windows ロゴマーク > 設定 >アプリ >アプリと機能 >オプション機能の管理( 機能の追加)

■ Windows Server 2019 へ 鍵認証を使ってSSH 接続する。

WindowsServer 2016

WindowsServer 2016 では別途入手してインストールする必要があります。

■ WindowsServer 2016 にsshd をインストールしてSSH 接続する。

WindowsServer にSSH 接続すると、シェルが「コマンドプロンプト」に代わる(?)ので、
Linux 感覚だと若干違和感あります。
また、Linux の資料を参考に作業していると、コマンドがエラーになったりするでしょう。

SSH コマンドについて

基本的なパスワードによるログイン。

下記の書式にて、パスワードを使ったSSH 接続ができます。

ssh <接続先のユーザー名>@<ホストアドレス>

例:サーバー「beccou-sever」のユーザー「uniuni」にSSH 接続する。

ssh uniuni@beccou-server

暗号鍵 を使用したログイン

これだけだと、パスワードだけでログインできてしまうので、暗号鍵ファイルを使った鍵認証の仕組みでセキュリティを強化します。

暗号鍵を使ってログインする時は、「-i」オプションを追加します。

ssh -i <秘密鍵ファイル> <接続先のユーザー名>@<ホストアドレス>

例:サーバー「beccou-sever」のユーザー「uniuni」に秘密鍵(id_rsa)を使用してSSH 接続する。

ssh -i .ssh/id_rsa uniuni@beccou-server

ログイン時にサーバーから暗号解読チャレンジが実施され、解読出来ると本人として認証される仕組みです。
(謎解きのチャレンジを投げてくるって、なんかスフィンクスの話みたいだと思ったり。)

認証に使う暗号鍵を入手するには。

認証に使う「鍵」は、OpenSSH クライアントで生成できます。

ssh-keygen

■ 暗号鍵( 秘密鍵 と 公開鍵 )を生成する。ssh-keygen コマンドのオプションについて。

ssh-keygen を実行すると、公開鍵と、秘密鍵を生成します。
生成した鍵のうち、公開鍵をサーバーに登録(ユーザーフォルダ/.ssh/authorized_keys に内容を記入)することで、暗号鍵認証による接続が可能になります。

具体的には、下図の様な構成になっていれば、鍵認証が成功します。

※公開鍵とauthorized_keys が「同じ」というのは、 authorized_keys の中にユーザーの生成した公開鍵の内容と同じ記述のものが含まれるというニュアンスです。

サーバーに公開鍵を登録するには。

公開鍵を サーバーに登録する際、
クライアントとサーバーが、Linux 同士なら「ssh-copy-id」コマンドが便利です。

Windows がクライアントの場合、ssh-copy-id コマンドが使えないので、手動で行う必要があります。

■ Raspberry Pi OS でSSH 接続を有効にする。

WindowsServer へSSH 接続する場合は、コンフィグを一部編集する必要があります。
これは2019 でも2016 でも同じでした。

■ WindowsServer 2016 にsshd をインストールしてSSH 接続する。
■ Windows Server 2019 へ 鍵認証を使ってSSH 接続する。

iPhone から鍵認証でSSH接続 してみました。

■ iPhone iOS の「ショートカット」App で鍵認証方式を使い Linux へSSH 接続する。

また、ssh-agent を使用すると、秘密鍵の情報をログイン先でも保持することが出来ます。

■ manページ  — SSH-AGENT

便利な OpenSSH

scp でファイル転送

OpenSSH で使えます。ちょっとしたファイルのアップロードやその反対もできました。
WindowsServer で公開鍵を登録する時なんかにも重宝します。

scp "C:\Users\unimoni\img\IMG_3100.JPG" uniuni@beccou-server:/home/uniuni

ローカルのファイルをRaspberry Pi へコピーできた。

■ scp コマンドについて。ssh 接続でファイルを転送する。Linux と Windows の場合。

SSH でポート転送

「-L」オプションを使うと、SSH 接続しつつ、サーバーの任意のポートを転送できます。
しかも、ファイアウォールを通過できます。

ssh -L <ポート>:<ホスト>:<ポート(サーバー)> <接続先のユーザー名>@<ホストアドレス>

例:サーバー「beccou-sever」のユーザー「uniuni」にSSH 接続し、リモート先の3389 ポートをローカルの60000 ポートへ転送する。 (ファイアウォールを通過できる。)

ssh -L 60000:localhost:3389 uniuni@beccou-server

ポートが転送できているか検証。

ローカルの60000 ポートを指定して、リモートデスクトップ接続してみる。
※転送した「3389」はリモートデスクトップ接続用のポート。
 なお、XRDP というLinux でもリモートデスクトップ接続できる拡張をインストールしてあります。

localhost:60000 で接続できている。

 WindowsServer 2019 の例。
■ Windows Server 2019
  SSH ポートフォワーディング(トンネリング)を使った リモートデスクトップ接続について。

 Linux の例
■ [AWS] 「Amazon Linux 2」に、Windows 10 からGUI で接続する。

テスト環境のススメ

というわけで、
OpenSSH クライアントをインストールしたら、早速SSH 接続してみましょう。

とはいえ、何処へSSH 接続するの?。。。ですよね^^;

下記に案を上げてみました。どれもオススメです。

VM

 メモリとCPU が余っているなら、VM でLinux を構築。

ちなみに私のVM 環境では、
・Linux(CentOS 7)
  CPU:1スレッド、メモリ:4GB、ハードディスク:30GB(SSD) で 特にストレスなし 。
・WindowsServer 2016/2019
   CPU:2スレッド、メモリ:8GB、ハードディスク:100GB(SSD) で特にストレスなし。
となっております。

サーバー

 WindowsServer を持っているならWindowsServer にSSH サーバーを構築。
VM にWindowsServer 構築してもいいですよね。

■ WindowsServer 2016 にsshd をインストールしてSSH 接続する。
■ Windows Server 2019 へ 鍵認証を使ってSSH 接続する。

 Linux を持っているならLinux。

Paspberry Pi

 Raspberry Pi を持っているならラズパイ。

■ Raspberry Pi OS でSSH 接続を有効にする。

AWS

 クラウドに興味があって、クレジットカードを持っているならAWS。

■ [AWS] Amazon Web Service のアカウントを作成する流れ。(画面キャプチャメモ)
■ AWS EC2 Windows Server のインスタンス(VM)を起動して接続する。
※EC2 作成時の参考に。
■ [AWS] 「Amazon Linux 2」に、Windows 10 からGUI で接続する。

まとめ

VM での構築なら、端末が問題なければ、基本無料で作れます。
AWS もSSH 接続するくらいの端末であれば、無料(1年間のみ)で構築できますが、、、
きっと課金したくなります^^。

参考サイト:

https://nxmnpg.lemoda.net/ja/1/ssh

https://nxmnpg.lemoda.net/ja/1/ssh-agent

Posted in Windows

関連投稿

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です