WindowsにOpenSSHをインストールし、SSHキーを生成してLinuxサーバーにログインします。

WindowsにOpenSSHをインストールし、SSHキーを生成してLinuxサーバーにログインします。

SSH の正式名称は Secure SHell です。 SSH を使用すると、送信されるすべてのデータを暗号化できるため、「中間者」攻撃が不可能になり、DNS および IP スプーフィングも防止できます。さらなる利点としては、送信されるデータが圧縮されるため、送信速度を高速化できることが挙げられます。 SSH には多くの機能があります。Telnet を置き換えることができ、ftp、pop、さらには ppp 用の安全な「チャネル」を提供できます。

SSH はもともとフィンランドの企業によって開発されました。しかし、著作権と暗号化アルゴリズムの制限により、現在では多くの人がOpenSSHを使用しています。

OpenSSH は、SSH プロトコル (SSH: Secure SHell) のオープン ソース バージョンです。

今日は、Windows に OpenSSH をインストールし、ssh-keygen コマンドを使用してキーを生成する方法を紹介します。

1. OpenSSHをダウンロードする

2. OpenSSHをインストールする

1. 言語の選択: 中国語と英語の両方が使用可能

次のステップ

「同意する」をクリックして続行してください

ここでは、Linux への接続に SSH を使用しているため、クライアントのみが必要であり、「サーバー」オプションはキャンセルします。

Windows での openssh のインストールを完了する

3. SSHが正常にインストールされているかどうかをテストする

Windowsのコマンドラインツールに入り、sshコマンドを入力すると、インストールが成功したことを示す次の情報が表示されます。

4. ssh-keygenコマンドを使用してキーペア(公開鍵と対応する秘密鍵)を生成します。

ssh-keygen の具体的なパラメータは次のとおりです。

-トライアル
-T を使用して DH-GEX プライム候補のセキュリティをスクリーニングするときに実行するテストの基本数。
-B 指定された公開/秘密鍵ファイルのバブルバブルダイジェストを表示します。
-b ビット
キーの長さを指定します。 RSA キーの場合、最小要件は 768 ビットで、デフォルトは 2048 ビットです。 DSA キーは正確に 1024 ビットである必要があります (FIPS 186-2 標準の要件)。
-Cコメント
新しいコメントを記入
-c 秘密鍵ファイルと公開鍵ファイル内のコメントの変更を要求します。このオプションは RSA1 キーでのみサポートされます。
プログラムは、秘密鍵ファイル名、パスフレーズ(存在する場合)、および新しいコメントの入力を要求します。
-D リーダー
スマート カード リーダーに保存されている RSA 公開キーをダウンロードします。
-e OpenSSH 秘密鍵ファイルまたは公開鍵ファイルを読み取り、RFC 4716 SSH 公開鍵ファイル形式で標準出力に表示します。
このオプションを使用すると、さまざまな商用バージョンの SSH のキーをエクスポートできます。
-F ホスト名
指定されたホスト名を known_hosts ファイルで検索し、一致するものをすべて一覧表示します。
このオプションは主にハッシュ化されたホスト名/IP アドレスを見つけるために使用されます。また、-H オプションと組み合わせて使用​​して、見つかった公開キーのハッシュ値を印刷することもできます。
-f ファイル名
キーファイル名を指定します。
-G 出力ファイル
DH-GEX の候補素数を生成します。これらの素数は、使用前に -T オプションを使用して安全性を検査する必要があります。
-g -r を使用してフィンガープリント リソース レコードを印刷するときに、汎用 DNS 形式を使用します。
-H known_hosts ファイルをハッシュします。これにより、ファイル内のすべてのホスト名/IP アドレスが対応するハッシュ値に置き換えられます。
元のファイルの内容は、「.old」サフィックスが追加された状態で保存されます。これらのハッシュは ssh と sshd でのみ使用できます。
このオプションは、すでにハッシュされているホスト名/IP アドレスを変更しないため、一部の公開キーがすでにハッシュされているファイルでも安全に使用できます。
-i 暗号化されていない SSH-2 互換の秘密/公開鍵ファイルを読み取り、OpenSSH 互換の秘密/公開鍵を標準出力に表示します。
このオプションは主に、さまざまな商用バージョンの SSH からキーをインポートするために使用されます。
-l 公開鍵ファイルのフィンガープリントデータを表示します。 RSA1 秘密鍵もサポートします。
RSA キーと DSA キーの場合、対応する公開キー ファイルが検出され、そのフィンガープリント データが表示されます。
-Mメモリ
DH-GEXS プライム候補を生成するときに使用するメモリの最大量 (MB 単位) を指定します。
-N 新しいパスフレーズ
新しい秘密のフレーズを入力してください。
-P パスフレーズ
(古い)秘密のフレーズを入力してください。
-p 秘密鍵を再構築せずに秘密鍵ファイルのパスワードを変更するように要求します。プログラムは、秘密鍵ファイル名、元のパスフレーズ、および 2 つの新しいパスフレーズの入力を求めます。
-q 静音モード。 /etc/rc に新しいキーを作成するときに使用されます。
-R ホスト名
known_hosts ファイルからホスト名に属するすべてのキーを削除します。
このオプションは主にハッシュされたホストのキーを削除するために使用されます (-H オプションを参照)。
-r ホスト名
ホスト名という名前の公開鍵ファイルの SSHFP フィンガープリント リソース レコードを出力します。
-S スタート
DH-GEX 候補モジュラスを生成する際の開始点 (16 進数) を指定します。
-T 出力ファイル
Diffie-Hellman グループ交換素数候補 (-G オプションで生成) のセキュリティをテストします。
-t タイプ
作成するキーのタイプを指定します。使用できるもの: "rsa1" (SSH-1) "rsa" (SSH-2) "dsa" (SSH-2)
-U 読者
既存のRSA秘密鍵をスマートカードリーダーにアップロードする
-v 詳細モード。 ssh-keygen はプロセスに関する詳細なデバッグ情報を出力します。多くの場合、モジュラス生成プロセスのデバッグに使用されます。
-v オプションを複数回繰り返すと、情報の詳細度が増します (最大 3 回)。
-Wジェネレータ
DH-GEXの候補モジュラスをテストするときに使用するジェネレータを指定します
-y OpenSSH 独自の形式で公開鍵ファイルを読み取り、OpenSSH 公開鍵を標準出力に表示します。

私たちがよく使用するパラメータは基本的に次のとおりです。

-t: 作成するキーのタイプを指定します。使用できるオプション: "rsa1" (SSH-1) "rsa" (SSH-2) "dsa" (SSH-2); デフォルトは RSA

-b: キーの長さを指定します。 RSA キーの場合、最小要件は 768 ビットで、デフォルトは 2048 ビットです。 DSA キーは正確に 1024 ビットである必要があります (FIPS 186-2 標準の要件)。

-f : キーファイル名を指定する

-C: キーコメントを指定

コマンドライン ツールに「ssh-keygen -t rsa -b 4096 -C "192.168.1.1"」と入力します。次の情報が表示されます。ここではキー ビット数を 4096 に設定しました。デフォルトは 2048 です。

Microsoft Windows [バージョン 6.1.7601]
著作権 (c) 2009 Microsoft Corporation。無断転載を禁じます。

C:\Users\Administrator>ssh-keygen -t rsa -b 4096 -C "192.168.1.1"
公開/秘密 RSA キー ペアを生成しています。
キーを保存するファイル (/home/Administrator1/.ssh/id_rsa) を入力してください: key #ここにファイル名を入力してください。Windows では入力が必要です。入力しないとエラーが発生します。パスフレーズを入力してください (パスフレーズがない場合は空): #キー パスワードとして理解できるキー パスフレーズを入力します。入力する必要はありません。同じパスフレーズをもう一度入力してください: #キー パスワードをもう一度入力してください。ID が key に保存されました。
公開鍵は key.pub に保存されました。
キーのフィンガープリントは次のとおりです。
SHA256:Ke9MH5QsT19TJqQgimryAn27Vp+MuIFeIff/2VL6hQE 192.168.1.1
キーのランダムアート画像は次のとおりです。
+---[RSA 4096]----+
| . . . |
| . . . . o |
| . . E . . o|
| . . oo + |
|o = + . S = . o |
|.+ = +.o = ..+ . |
|. o +o.+o.ooo . |
| o .oo.=+.o+ . |
| ..o. +.+oo |
+----[SHA256]-----+

C:\ユーザー\管理者>

完了したら、現在のユーザー ディレクトリを開いて、生成されたキー ファイルがあるかどうかを確認します。実際には、2 つのファイルがあるはずです。key は秘密キーで、key.pub は公開キーです。

私の現在のユーザーディレクトリは「C:\Users\Administrator」ですが、あなたのものとは異なる場合があります。

5. LinuxサーバーのSSH設定

キーペアを生成したら、公開キー(先ほど生成したkey.pubファイル)をLinuxサーバーにアップロードする必要があります。

注: アップロード場所は、Linuxにログインしたユーザーのホームディレクトリ内の.sshディレクトリです。

ディレクトリが存在しない場合は、~/.ssh ディレクトリを作成し、ディレクトリの権限を 700 に設定する必要があります。

公開鍵の名前を authorized_keys に変更し、ユーザー権限を 600 に設定します。

例: /root/.ssh/

次に、アップロードしたkey.pubファイルの名前をauthorized_keysに変更します。

[root@server ~]# mv key.pub authorized_keys
[root@server ~]# chmod 700 .ssh
[root@server ~]# chmod 600 authorized_keys

これでSSHキーを使用してLinuxサーバーに接続できるようになりました

接続に失敗した場合は、.ssh ディレクトリと authorized_keys ファイルの権限が正しいことを確認してください。

LinuxサーバーへのSSH接続に関するその他の記事については、以下の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • Linux でサーバーに接続するための SSH と Xshell の設定に関するチュートリアル (画像付き)
  • Linux サーバーに SSH パスワードなしでログインする方法
  • LinuxサーバのSSHクラッキング防止方法(推奨)
  • SSH経由でLinuxサーバーにファイルやフォルダをアップロードする方法
  • Python の Paramiko モジュールは、Linux サーバーにログインするための SSH 接続を実装します。
  • Windows で winscp とバッチ処理を使用して、SSH ポート経由で Linux サーバーにファイルをアップロードする
  • Linux サーバーで安全な SSH アクセスを構成するための 4 つのヒント
  • Linux ssh サーバーの構成コード例

<<:  手の動きをリアルタイムで監視するための Handtrack.js ライブラリ (推奨)

>>:  MySQL ステートメントを使用して、さまざまな整数が占めるバイト数とその最大値と最小値を調べる例

推薦する

Linux サーバーの状態を監視する方法

私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...

CSSスタイルシートを効率的に使用するためのヒント: スタイルシートの力を最大限に活用する

インターネット経済の継続的な発展に伴い、インターネット上の専門ウェブサイト、公共サービスウェブサイト...

制限およびオフセット ページング シナリオを使用すると速度が遅くなるのはなぜですか?

質問から始めましょう5 年前、私が Tencent にいたとき、ページング シナリオでは MySQL...

HTML iframe と frameset の違い_PowerNode Java Academy

導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...

Windows 10 システムで nginx ファイル サーバーを構成するためのグラフィック チュートリアル

Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...

MySQL mysqladmin クライアントの使用の概要

目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

Nginx プロセス スケジューリングの問題の詳細な説明

Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...

Nginx リクエスト制限の設定方法

Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...

Vueは画像のドラッグアンドドロップ機能を実装します

この記事の例では、画像のドラッグアンドドロップ機能を実現するためのVueの具体的なコードを参考までに...

Linux nlコマンドの使い方

1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...

Docker マイクロサービス用の ETCD クラスターの構築に関する詳細なチュートリアル

目次etcdの機能etcdが独自の高可用性クラスタを構築するには、主に3つの形式があります。今回構築...

フォーム要素の簡単な実装コードでは登録を例に挙げています

コード実装:コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

HTML の基本概要推奨事項 (段落)

HTML段落段落は <p> タグによって定義されます。例<p>これは段落で...

MySQL: MySQL 関数

1. 組み込み関数1. 数学関数ランド()丸め(数値) ceil(数値)階数(数値)ランダム丸め切り...