Windows 10 /Server2019でのSSHキーベースの認証の構成
この記事では、リモートサーバー/コンピューターに安全にアクセスするために、WindowsでRSAキーを使用してSSH認証を構成します。 WindowsでRSAキー(証明書)を生成する方法と、Windows 10 / Windows Server 2019でキーベースの認証用に組み込みのOpenSSHサーバーを構成する方法(パスワードなしでリモートホストで認証できるようにする方法)を示します。
SSHキーベースの認証は、Linuxの世界で広く使用されていますが、Windowsではごく最近登場しました。クライアントの公開鍵がSSHサーバーに追加され、クライアントがそれに接続しようとすると、サーバーはクライアントが対応する秘密鍵を持っているかどうかを確認するという考え方です。
内容:
- WindowsでのSSH(RSA)の生成
- SSHキーを使用して認証するためのWindows上のOpenSSHサーバーの構成
- ローカル管理者の下でSSHキーを使用してWindowsにログインする方法
OpenSSHを実行しているリモートWindowsサーバーへの接続に使用するクライアントコンピューターで2つのRSAキー(パブリックキーとプライベートキー)を生成する必要があります。秘密鍵はクライアント側に保存され(誰にも渡さないでください!)、公開鍵が authorized_keysに追加されます。 SSHサーバー上のファイル。 WindowsクライアントでRSAキーを生成するには、OpenSSHクライアントをインストールする必要があります。
Windows 10 1809(およびそれ以降)およびWindows Server 2019では、OpenSSHクライアントは個別の機能としてインストールされます。
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
標準の(非特権の)PowerShellセッションを実行し、次のコマンドを使用してRSA2048キーのペアを生成します。
ssh-keygen
秘密鍵を保護するためにパスワードを入力するように求められます。パスワードを指定すると、SSH認証にこのキーを使用するたびにパスワードを入力する必要があります。パスフレーズを入力していません(推奨されません)。
Ssh-keygenは.sshを作成します 現在のWindowsユーザーのプロファイル(C:\ Users \ your_username)のディレクトリに、2つのファイルを配置します:
- id_rsa –秘密鍵
- id_rsa.pub –公開鍵
RSAキーを作成したら、秘密キーをSSHエージェントに追加できます。 サービス。秘密鍵を便利に管理し、認証に使用できます。 SSH Agentは秘密鍵を保存し、現在のユーザーのセキュリティコンテキストでそれらを提供します。 ssh-agentサービスを実行し、PowerShellサービス管理コマンドを使用して自動起動するように構成します。
set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent
秘密鍵をssh-agentデータベースに追加します:
ssh-add "C:\Users\youruser\.ssh\id_rsa"
または次のように:
ssh-add.exe $ENV:UserProfile\.ssh\id_rsa
SSHキーを使用して認証するためのWindows上のOpenSSHサーバーの構成
次に、クライアントで生成した公開鍵をSSHサーバーにコピーします(この例では、Windows 10 1903を実行し、OpenSSHが構成されているリモートコンピューターです)。
WindowsでOpenSSHサーバーを構成する方法についてはすでに詳しく説明しました。id_rsa.pubをコピーします 。sshにファイルします SSHサーバーへの接続に使用するユーザーのプロファイル内のディレクトリ。たとえば、管理者がいます Windows 10のユーザーなので、キーをC:\ Users \ adminにコピーする必要があります \ .ssh\authorized_keys。
SCPを使用して公開鍵をSSHサーバーにコピーできます:
scp C:\Users\youruser\.ssh\id_rsa.pub [email protected]:c:\users\admin\.ssh\authorized_keys
これで、パスワードなしでWindowsSSHサーバーに接続できます。秘密鍵のパスワード(パスフレーズ)を設定していない場合は、リモートのWindowsホストに自動的に接続します。
ネイティブSSHクライアントを使用してリモートホストに接続するには、次のコマンドが必要です。
ssh (username)@(SSH server name or IP address)
例:
これは、 adminの下でIPアドレス192.168.1.15を使用してリモートSSHサーバーに接続することを意味します。 アカウント。 SSH Agentは、認証する前に保存された秘密鍵を自動的に使用しようとします。
ssh-agentサービスを使用してSSHキーを管理したくない場合は、SSH認証に使用する秘密キーファイルへのパスを指定できます。
ssh [email protected] -i "C:\Users\youruser\.ssh\id_rsa"
RSAキーを使用してSSHサーバーに接続できず、パスワードの入力を求められる場合は、接続しようとしているユーザーアカウントがローカルサーバー管理者グループ(グループSID)のメンバーである可能性があります。はS-1-5-32-544です)。後で説明します。
OpenSSHは、Windowsローカル管理者権限を持つユーザーに対して特別なキーベースのアクセス設定を使用します。
まず、キーファイルC:\ ProgramData \ ssh \ manages_authorized_keyを使用します ■authorized_keysの代わりに ユーザープロファイルのファイル。このテキストファイルにSSHキーを追加する必要があります(セキュリティ上の理由から、AdministratorsグループとSYSTEMのみがこのファイルを読み取る権限を持っている必要があります)。
ユーザープロファイルからauthorized_keysファイルを使用し、公開鍵データをadministrators_authorized_keysファイルに移動しないようにするために、OpenSSH構成ファイル(C:\ ProgramData \ ssh \ sshd_config > 。
次の行にコメントを付けます:
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
sshd_configファイルのRSAキーを使用してWindowsへのアクセスを許可します。
PubkeyAuthentication yes
そして、sshパスワードログインを無効にします:
PasswordAuthentication no
sshd_configに変更を保存した後、sshdサービスを再起動することを忘れないでください。
restart-service sshd
ここにもう一つの重要なことがあります。以前のOpenSSHバージョンでは、NT Service\sshdにauthorized_keysファイルの読み取り権限を付与する必要がありました。
これを行うには、次のいずれかを行う必要があります。
- OpenSSHUtilsモジュールをインストールします :
Install-Module -Force OpenSSHUtils -Scope AllUsers
。ファイルのアクセス許可を変更するには、次のコマンドを実行します。Repair-AuthorizedKeyPermission -FilePath C:\Users\admin\.ssh\authorized_keys
- NTFSSecurityモジュールまたはicaclsを使用してファイルのNTFSアクセス許可を変更します。
- または、 StrictModesを無効にすることもできます sshd_configファイルにあります。デフォルトでは、このモードは有効になっており、公開鍵と秘密鍵が適切に保護されていない場合、鍵ベースの認証ができなくなります。
#StrictModes yes
の行のコメントを解除します 、StrictModes no
に変更します 。
したがって、公開RSAキー(証明書)を使用してWindowsでSSH認証を構成しました。これで、この認証方法を使用して、リモートサーバーに安全にアクセスし、SSHトンネル内のポートを自動的に転送し、スクリプトを実行し、その他の自動化関連のタスクを実行できます。
-
WindowsServer2019の削除および非推奨の機能
消費者向けのWindows10と同様に、Microsoftはサーバーエディションの新しい機能を構築し続けています。追加とは別に、関数も削除され、非推奨になりました。これがWindows10 Server 2019のリストです 削除および非推奨の機能 WindowsServer2019の削除および非推奨の機能 削除される機能 1]分散スキャン管理(DSM)とも呼ばれるビジネススキャン 現在のところ、これに代わるものはありません。 2]インターネットストレージネームサービス( iSNS ) iSNSプロトコルは、サーバーとクライアント間の対話に使用されます。代わりに、追加の
-
WindowsServer2019にHyper-Vの役割をインストールする
私たちの記事のファンなら、Hyper-V 2019について説明している記事をたくさん見たことがあるでしょう。仮想化を正しく理解したら、次のステップは、ハイパーバイザーとして機能するマシンを環境に装備することです。 WindowsServer2010またはHyper-V2019CoreServerと互換性があります。 Hyper-V2019を物理マシンにインストールする方法は2つあります。 Hyper-Vサーバーコアの記事ですでに説明したように、Hyper-Vコアサーバーとしてインストールできます。 2番目の方法は、Windows Server 2019に役割としてインストールすることです。さま