1 SSHとは何かBaidu百科事典より引用: SSH は、IETF のネットワーク ワーキング グループによって開発された Secure Shell の略称です。アプリケーション層に基づくセキュリティ プロトコルです。 SSH は現在、リモート ログイン セッションやその他のネットワーク サービスにセキュリティを提供するために設計された最も信頼性の高いプロトコルです。 SSH プロトコルを使用すると、リモート管理中の情報漏洩を効果的に防ぐことができます。 SSH はもともと UNIX システム上のプログラムでしたが、その後すぐに他のオペレーティング プラットフォームにも拡張されました。 異なるプラットフォーム/ネットワーク ホスト間の通信のセキュリティを確保するには、多くの場合、SSH による認証が必要です。SSH 認証には主に 2 つの方法があります。 ① パスワードベースのセキュリティ認証:ログインするたびにユーザー名とパスワードを入力する必要があります。パスワードはネットワーク経由で送信する必要があるため、中間者攻撃のリスクがあります。 2 SSHパスワードフリーログインを設定する注: このデモで使用されるサーバー オペレーティング システムは Cent OS 7 です。目標は次のとおりです。 サーバー A (172.16.22.131) はパスワードなしでサーバー B (172.16.22.132) にログインできます。 注意: ssh 接続は一方向です。A はパスワードなしで B にログインできますが、同時に B はパスワードなしで A にログインすることはできません。 2.1 必要なソフトウェアのインストール操作する前に、必要なソフトウェアが正しくインストールされていることを確認してください。 ここでは # ssh-keygen をインストールします。サーバーがインターネットに接続できることを確認します。すでにインストールされているので、何もする必要はありません。 [root@localhost ~]# yum install -y ssh-keygen 読み込まれたプラグイン: fastestmirror、langpacks ベース | 3.6 kB 00:00:00 エペル | 3.6 kB 00:00:00 特典 | 2.9 kB 00:00:00 アップデート | 2.9 kB 00:00:00 キャッシュされたホストファイルからミラー速度をロードする 利用可能なパッケージ ssh-keygen がありません。 エラー: 何もできません # ssh-copy-id をインストールする [root@localhost ~]# yum install -y ssh-copy-id 読み込まれたプラグイン: fastestmirror、langpacks キャッシュされたホストファイルからミラー速度をロードする 利用可能なパッケージ ssh-copy-id がありません。 エラー: 何もできません 2.2 ssh-keygenは公開鍵と秘密鍵のペアを作成する(1)指定されたディレクトリにRSA鍵を生成し、コメントを「shoufeng」と指定します。実装例: [root@localhost ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "shoufeng" # ~キーの種類~キーファイルのパスと名前~備考 公開/秘密 RSA キー ペアを生成しています。 パスフレーズを入力してください (パスフレーズがない場合は空白): # パスワードを入力するか、入力したくない場合は Enter キーを押します 同じパスフレーズをもう一度入力してください: # パスワードをもう一度確認するか、入力したくない場合は Enter キーを押します ID は /root/.ssh/id_rsa に保存されました。 公開鍵は /root/.ssh/id_rsa.pub に保存されました。 キーのフィンガープリントは次のとおりです。 9a:e3:94:b9:69:c8:e9:68:4b:dc:fa:43:25:7f:53:f1 ショウフェン キーのランダムアート画像は次のとおりです。 +--[RSA 2048]----+ | | | . | | か | | . . . E | | + S | | . .. .=o | |oo.oB. . | | ..o=o.+ | | .++oo+ | +-----------------+ 注: キー ファイル名は id_xxx である必要があります。xxx は -t パラメータで指定されたキー タイプです。たとえば、キー タイプが rsa の場合、キー ファイル名は id_rsa である必要があります。 (2)ssh-keygenの共通パラメータの説明: -t: キー タイプ。dsa | ecdsa | ed25519 | rsa を選択できます。 -f: キーディレクトリの場所。デフォルトは、現在のユーザーのホームパスの下の .ssh 隠しディレクトリ、つまり ~/.ssh/ で、デフォルトのキーファイル名は id_rsa で始まります。ルートユーザーの場合は /root/.ssh/id_rsa にあり、他のユーザーの場合は /home/username/.ssh/id_rsa にあります。 -C: このキーのコメント情報を指定します。複数のパスワードなしのログインを設定する必要がある場合は、これを使用することをお勧めします。 -N: このキー ペアのパスワードを指定します。このパラメータを指定すると、コマンド実行中に対話型の確認パスワード情報は表示されません。 たとえば、ディレクトリの場所、パスワード、コメント情報を同時に指定すると、作成を完了するために Enter キーを押す必要はありません。 (3)生成されたファイルを表示するには、~/.ssh/ディレクトリに移動します。 # 生成されたファイルは test_rsa で始まります。test_rsa は秘密鍵、test_rsa.pub は公開鍵です。 [root@localhost .ssh]# ls テスト_rsa テスト_rsa.pub # cat コマンドを使用して公開鍵ファイルを表示します。 [root@localhost .ssh]# cat id_rsa.pub SSHA AAAB3NZAC1YC2EAAAADEQABAAABAQCC2JPLMQGEG9JB9ZTOCW0WMS8HDVPFXTTHQG1VOQTOJI/CP0+8RUZL3P6NTZQFHBS0ITCY0PIPIJGGGXVRVNINGBRVNINCVNINGBNINGBRVNINGBNINGBNINGBNINGBNINGBNINGBNINGBRVNISPLVITFLVILVILVILVILVITFLVILVITFLVINTXXBRYNVNINGBRVNIC 372WOVLANQ7MXQ06QAONJURD0C64XQDJFKB1OVS/NYKAOR9D8YQ/FXFWKKKQ7TZJM0CVBAG7+YR8LC9TJTCYPMNXNNNGISLIPZJBCNFT+5VTCFSENFSENFJISLIPZJMZD60CCCFSENFSCFSENFSCFSFJSFJD60CCCFSENFSENFSCFSCFSENFSCFSENFSCFSCFSENFSENFSFJSFJD60CCFSCFSENFSENFSCFJSFJD60CCCFSENFSENFJSFJD60CCFJD60CCFJD60 cucztqssitmyf3dyhqmrxl+cj2vjzwvzru6iy7bpqjfwfyy9m8kal0pz+jjuau7esvbxf6hjcqhypp2btuyff+vdv shoufeng # 最後にコメントがあることがわかります shoufeng 2.3 ssh-copy-idはAの公開鍵をBに送信するデフォルトの使用方法は、ssh-copy-id [email protected] です。リモート サーバーに接続するときの ssh-copy-id コマンドのデフォルト ポートは 22 です。もちろん、ファイル、リモート ホスト IP、ユーザー、ポートを指定することもできます。 # コピーするローカルファイル、リモートホストの IP + ユーザー名 + ポート番号を指定します: [root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected] /usr/bin/ssh-copy-id: INFO: すでにインストールされているキーを除外するために、新しいキーでログインしようとしています /usr/bin/ssh-copy-id: INFO: インストールするキーが 1 つ残っています -- ここでプロンプトが表示された場合は、新しいキーをインストールしてください [email protected] のパスワード: # パスワードを入力すると、公開鍵がコピーされます 追加された鍵の数: 1 ここで、「ssh -p '22' '[email protected]'」を使用してマシンにログインしてみます。 必要なキーだけが追加されたことを確認します。 2.4 パスワードなしでサーバーAからサーバーBにログインする[root@localhost .ssh]# ssh [email protected] 最終ログイン: 2019 年 6 月 14 日金曜日 08:46:04 192.168.34.16 から # ログイン成功😄 3 詳細な説明3.1 公開鍵ファイルを送信するその他の方法 上記の 2.3 の手順では、公開鍵ファイルを ssh-copy-id ツールを使用して送信します。もちろん、他の方法でも実行できます。 (1)Aの公開鍵ファイルをBに送信する: scp コマンドを使用して、サーバー A の公開鍵ファイルをサーバー B のユーザー ディレクトリに送信します。パスワードなしのログインが正常に構成されていないため、サーバー B の対応するユーザーのパスワードを入力する必要があります。 [root@localhost .ssh]# scp id_rsa.pub [email protected]:/root/.ssh [email protected]のパスワード: id_rsa.pub 100% 390 0.4KB/秒 00:00 (2)Bにauthorized_keysファイルを作成する。 [root@localhost .ssh]# cd /root/.ssh/ [root@localhost .ssh]# ls id_rsa.pub # サーバー A の公開鍵を使用して「authorized_keys」ファイルを生成します。 [root@localhost .ssh]# cat id_rsa.pub >> authorized_keys [root@localhost .ssh]# cat authorized_keys SSHA AAAB3NZAC1YC2EAAAADEQABAAABAQCC2JPLMQGEG9JB9ZTOCW0WMS8HDVPFXTTHQG1VOQTOJI/CP0+8RUZL3P6NTZQFHBS0ITCY0PIPIJGGGXVRVNINGBRVNINCVNINGBNINGBRVNINGBNINGBNINGBNINGBNINGBNINGBNINGBRVNISPLVITFLVILVILVILVILVITFLVILVITFLVINTXXBRYNVNINGBRVNIC 372WOVLANQ7MXQ06QAONJURD0C64XQDJFKB1OVS/NYKAOR9D8YQ/FXFWKKKQ7TZJM0CVBAG7+YR8LC9TJTCYPMNXNNNGISLIPZJBCNFT+5VTCFSENFSENFJISLIPZJMZD60CCCFSENFSCFSENFSCFSFJSFJD60CCCFSENFSENFSCFSCFSENFSCFSENFSCFSCFSENFSENFSFJSFJD60CCFSCFSENFSENFSCFJSFJD60CCCFSENFSENFJSFJD60CCFJD60CCFJD60 cucztqssitmyf3dyhqmrxl+cj2vjzwvzru6iy7bpqjfwfyy9m8kal0pz+jjuau7esvbxf6hjcqhypp2btuyff+vdv shoufeng 注意: 上記のリダイレクトを追加するには >> を使用してください。> は使用しないでください。> を使用すると、元のコンテンツがクリアされます。 3.2 ファイルの権限秘密鍵ファイルと公開鍵ファイルが認証で機能するには、権限の正確性を確認する必要があります。 ① .ssh ディレクトリとその中の公開鍵ファイルおよび秘密鍵ファイルについては、現在のユーザーには少なくとも実行権限が必要であり、他のユーザーには最大でも実行権限しか付与できません。 ② 便宜上、権限を 777 に設定しないでください。権限が多すぎると安全ではなく、デジタル署名はこの権限戦略をサポートしていません。 ③ 一般ユーザーの場合は、権限を 600 に設定することをお勧めします: chmod 600 authorized_keys id_rsa id_rsa.pub; ④ rootユーザーの場合、権限を644に設定することをお勧めします:chmod 644 authorized_keys id_rsa id_rsa.pub。 3.3 ファイルの編集と表示Liunx 環境では、秘密鍵、公開鍵、authorized_keys ファイルを表示またはコピーする場合、不要な改行が生成されるため、vim などのエディターを使用して開かないでください。 cat、more、less などの表示コマンドを使用してコンテンツを端末に出力し、その後、表示、コピーなどの操作を実行する必要があります。 要約する 上記は、編集者が紹介した Linux で SSH パスワードフリーログインを構成するための「ssh-keygen」の基本的な使用方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: MySQLの一般的なメモリ不足による起動失敗に対する完璧な解決策
この記事では、CSS スティッキー フッターの実装コードを紹介し、共有します。詳細は次のとおりです。...
RocketMQ は、Alibaba が設計した分散型のキューベースのメッセージング ミドルウェア...
序文注: テストデータベースのバージョンはMySQL 8.0ですテーブルを作成し、ユーザー scot...
目次初期作成方法ファクトリーパターンコンストラクターパターンコンストラクタパターンの最適化プロトタイ...
目次MYSQL メタデータ ロック (MDL ロック) 学習理論とロック タイプ テスト1. 予備的...
目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...
この記事では、時間範囲効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...
Tomcatが同時リクエストを処理する方法を理解することで、スレッドプール、ロック、キュー、および...
用語: 1. VM: 仮想マシンステップ: 1. Windows 10 に VirtualBox 6...
まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...
多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...
1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...
フレックスレイアウト定義: Flexレイアウトの要素は、 Flex 、または略して「コンテナー」と呼...
この記事の目的は、最も明確な構造を使用していくつかのコンポーネントの基本機能を実装することです。皆さ...
<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...