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の一般的なメモリ不足による起動失敗に対する完璧な解決策
目次序文2次元配列、一方向基本インターフェースのマッピング幅優先、包括的検索マップ編集経路探索アルゴ...
MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...
LinuxサーバーのデフォルトのSSHポート番号は通常22なので、ほとんどのユーザーはセキュリティ上...
Apache Arrow は、BigQuery を含むさまざまなビッグデータ ツールで使用される一...
背景説明: 既存の負荷分散装置には、付加価値状態にある指標があります (増加するだけで減少しないため...
サーバーの配置数日間無料で使用できるクラウドサーバー(Alibaba Cloud、Huawei Cl...
目次1. MySQL論理アーキテクチャの概要2. コネクタクエリキャッシュ4. パーサー5. オプテ...
フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...
目次1. アニメーション機能の原理2. アニメーション関数のシンプルなカプセル化3. アニメーション...
問題の説明MySQL の起動時にエラーが報告されます。エラー ログを確認してください。 [エラー] ...
目次序文:ウォーターフォールレイアウトとは何ですか?達成方法: 1. 画像を取得する2. 画像の帯域...
表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...
wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...
目次1. 遅いクエリ構成1-1. スロークエリを有効にする2. 遅いクエリSQLの分析を説明する3....
この記事の例では、タブ効果を記述するためのJSの具体的なコードを参考までに共有しています。具体的な内...