スポンサーリンク

仮想サーバーにOpen-SSHをインストールしてSSH接続してみる

仮想サーバーにOpen-SSHをインストールしてSSH接続してみるUnknown
仮想サーバーにOpen-SSHをインストールしてSSH接続してみる
スポンサーリンク

SSHとは?

Secure Shellの略称でリモート通信するためのプロトコルです。

ネットワーク上の通信が暗号化されるため安全な通信が可能となります。

https://e-words.jp/w/SSH.html

動作環境

クライアント

エディションWindows 11 Home
バージョン21H2

サーバー

VMwareWindows Server2019

前提条件

SSH接続するためにクライアントと接続先のサーバーを用意します。

サーバーはVMwareにて仮想マシンを作成、OSはWindows Server2019を使用します。

OpenSSHをインストール

PowerShellでクライアントとサーバーにOpenSSHをインストールしていきます。

Windows 用 OpenSSH の概要
Windows 用 OpenSSH Client および Server を使用してリモート コンピューターをインストールしてリモート コンピューターに接続する方法について説明します。

クライアントにインストール

OpenSSH.Clientのインストールの確認

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

OpenSSH.ClientのStateがInstalledになっていたらクライアントにOpenSSHがインストールされているため問題ないです。最近のWindowsはデフォルトインストールとなっているようです。

インストールされていない場合はPowerShellで以下のコマンドを実行

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

サーバーにインストール

OpenSSH.Serverのインストール確認後にインストールされていなければ以下のコマンドを入力

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

以下の内容表示が出ていればインストール完了しています。

Path          :
Online        : True
RestartNeeded : False

SSHサーバーを起動する

SSHサーバーを起動

Start-Service sshd

スタートアップの種類が手動の場合、サーバーを再起動したときにServiceが立ち上がらないので自動起動に変更しておく

自動起動に変更

Set-Service -Name sshd -StartupType 'Automatic'

OpenSSHの起動とスタートアップの種類が自動起動に変更されているかの確認

クライアントとサーバーの疎通確認

pingが通るように設定を変更する

Windows Serverで遊ぼう | pingを受け付けるようにする
pingを受け付けるようにする。

セキュリティが強化された Windows Defender ファイアーウォール

ファイルとプリンターの共有(エコー要求 – ICMPv4受信)

有効にチェックを入れてOK

サーバーのipアドレスを調べる

ipconfig/all

クライアントとサーバーの疎通確認

ping 192.168.19.131

クライアントで公開鍵と秘密鍵を作成する

公開鍵と秘密鍵を作成する

現在ログインしているユーザーで.sshフォルダを作成する。

mkdir C:\Users\takus\.ssh

.sshフォルダ内に移動

mkdir C:\Users\takus\.ssh

.sshフォルダ内で公開鍵と秘密鍵を生成する

ssh-keygen

今回はオプション指定なしで生成します。 ※要件によって変更してください。

オプション指定なしだとrsaの3072bitで作成されます

以下の入力項目は全て「Enter」を押下する

鍵の保存先フォルダの設定                                 Enter file in which to save the key (C:\Users\takus/.ssh/id_rsa):

鍵に対してパスワードを設定する                              Enter passphrase (empty for no passphrase):
Enter same passphrase again:

公開鍵と秘密鍵が生成されているかの確認

id_rsa.pub:公開鍵

id_rsa:秘密鍵

暗号化方式について

Mody氏は最終的に、実装や互換性を重視する場合は公開鍵の鍵長が2048bitもしくは4096bitのRSAを、パフォーマンスやセキュリティを重視する場合はEdDSAを推奨。DSAやECDSAは使わないように呼びかけています。

https://gigazine.net/news/20200828-ssh-encryption-algorithm/
SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか?
リモートでコンピューターにアクセスするためのプロトコルであるSSHは、コンピューターの認証を行うために公開鍵暗号を利用しています。公開鍵暗号の方式には「RSA」「DSA」「ECDSA」「EdDSA」があり、それぞれの仕組みと「SSHに適した方式」についてソフトウェア企業「Gravitational」のVirag Mod...

サーバーにSSHの鍵を送信する

サーバーで.sshフォルダを作成した後に移動

mkdir .ssh
cd .ssh

クライアントで作成した公開鍵をサーバーに送信する

scp id_rsa.pub Administrator@192.168.19.131:C:\Users\Administrator\.ssh

初回の送信時はフィンガープリントの生成要否を聞かれます。これは「yes」にしましょう。

なりすまし攻撃の対策です。フィンガープリントを生成すると2回目以降の接続時に公開鍵が初回と異なる場合にエラーメッセージが表示され、接続できなくなります。

The authenticity of host ‘192.168.19.131 (192.168.19.131)’ can’t be established.
ECDSA key fingerprint is SHA256:3d4532Rm2qIvyOXKerAQMrtmXPlH22tDmWpjl5i+VPg.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

サーバーのパスワードを入力する

Administrator@192.168.19.131’s password:

サーバーに公開鍵が送信されているかの確認

サーバーにSSHの鍵を登録する

公開鍵の登録を行います。.sshフォルダを作成

cd C:\Users\Administrator\.ssh\

authorized_keysに公開鍵を登録する

type id_rsa.pub >> authorized_keys

サーバーにSSH接続をする

パスワード認証

パスワード認証でSSH接続をする

ssh Administrator@192.168.19.131

サーバーのパスワードを入力する

Administrator@192.168.19.131’s password:

SSH接続成功!

公開鍵認証

サーバーのC:\ProgramData\ssh\sshd_configを編集していきます。

①パスワード認証を禁止にするためコメントを外してnoに変更

Password Authentication no

②administrators_authorized_keysを読み込まないようにコメントアウト

Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

sshd_configを変更した後はSSHサーバーを再起動する。

restart-service sshd

公開鍵認証方式でSSH接続

ssh Administrator@192.168.19.131

SSH接続成功!

タイトルとURLをコピーしました