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 ステートメントを使用して、さまざまな整数が占めるバイト数とその最大値と最小値を調べる例

推薦する

Vue2で配列の変更を検出できない理由と解決策

目次回避策Vue2.0 で 2 つの配列の変更を監視できないのはなぜですか?ソースコード分析ヴュー3...

CSS スタイルの優先順位はどれくらい複雑ですか?

昨晩、面接の質問を見ていたら、CSS スタイルの優先順位について特に明確に説明していない人が何人かい...

DockerコンテナでArthasを使用するための詳細な手順

Arthas はあなたのために何ができるでしょうか? Arthas 、開発者に深く愛されている Al...

ウェブデザインの概要

<br />1998年に最初の個人ページが誕生してから2008年の今日まで、デザイン業界...

仮想マシンUbuntu 16.04がインターネットに接続できない問題の解決策

Ubuntu をインストールしたばかりですが、開いたときにネットワーク接続がありませんでした。右上隅...

MySQL デッドロックのトラブルシューティングの全プロセス記録

【著者】 Liu Bo: Ctrip テクニカル サポート センターのシニア データベース マネージ...

vue-cropper を使用して vue で写真をトリミングする方法をご存知ですか?

目次1. インストール: 2. 使用方法: 3. 組み込みメソッド: 4. 使用方法:要約する公式サ...

ウェブデザインの教育または学習プログラム

セクションコース内容営業時間1 ウェブデザインの概要2 2 HTML 基本タグとフォーマットタグ 2...

タブ切り替えを実装するための HTML サンプル コード

タブ切り替えもプロジェクトではよく使われる技術です。一般的にタブ切り替えはjsやjqを使って実装され...

Linux および Unix サーバーのセキュリティを強化する方法

ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...

CSS3のtransform属性で実装される4つの機能

CSS3 では、transform 関数を使用して、テキストや画像の回転、拡大縮小、傾斜、移動という...

DockerにMySQLをインストールする方法

最近 Django を導入しましたが、MySQL を手動でインストールしたくなかったので、Docke...

Vue.js フロントエンドプロジェクト向け多言語ソリューションのアイデアと実践

目次1. 通常どのようなコンテンツを処理する必要があるか2. 基本的な考え方3. 具体的な実践の詳細...