1. SSHリモート管理 SSH はセキュア チャネル プロトコルであり、主にリモート ログイン、リモート コピー、およびキャラクタ インターフェイスのその他の機能を実装するために使用されます。 SSH プロトコルは、ユーザーがログインするときに入力したユーザー パスワードを含む、通信する 2 つの当事者間で送信されるデータを暗号化します。 Telent、RSH、RCP などの以前のアプリケーションと比較すると、SSH プロトコルはより優れたセキュリティを提供します。 1. OpenSSHサーバーを設定する Centos 7.4 システムでは、OpenSSH サーバーは openssh や openssh-server (デフォルトでインストール) などのソフトウェア パッケージによって提供され、sshd が標準のシステム サービスとして追加されています。 「systemctl start sshd」コマンドを実行して、sshd サービスを開始します。root を含むほとんどのユーザーは、システムにリモートでログインできます。 sshd サービスの設定ファイルは、デフォルトでは /etc/ssh/sshd_config ディレクトリにあります。関連する設定項目を適切に調整すると、sshd リモート ログインのセキュリティをさらに向上できます。 1) サービス監視オプション sshd サービスが使用するデフォルトのポート番号は 22 です。必要に応じて、このポート番号を変更し、リスニング サービスの特定の IP アドレスを指定して、ネットワーク内での隠蔽性を高めることをお勧めします。バージョン V2 はバージョン V1 よりも安全です。DNS 逆解決を無効にすると、サーバーの応答速度が向上します。 [root@centos01 ~]# vim /etc/ssh/sshd_config <!--sshdのメイン設定ファイルを編集します--> 17 ポート 22 <!-- リスニング ポートは 22 です --> 19 ListenAddress 192.168.100.10 <!-- リスニング アドレスは 192.168.100.10 です --> 21 プロトコル 2 <!--SSH V2 プロトコルを使用する--> 118 UseDNS no <!--DNS 逆引き解決を無効にする--> ...... <!--ここでは一部内容を省略しています--> [root@centos01 ~]# systemctl restart sshd <!--sshd サービスを再起動します--> 2) ユーザーログイン制御 sshd サービスでは、デフォルトで root ユーザーがログインできますが、インターネット経由で使用すると非常に危険です。 sshd サービスのユーザー ログイン制御に関しては、通常、root ユーザーまたはパスワードが空のユーザーのログインは禁止される必要があります。また、ログイン認証時間(デフォルトは2分)と最大再試行回数を制限することができます。制限を超えてもログインできない場合は、接続が切断されます。 [root@centos01 ~]# vim /etc/ssh/sshd_config <!--sshdのメイン設定ファイルを編集します--> 37 LoginGraceTime 2m <!--ログイン認証時間は2分です--> 38 PermitRootLogin yes <!--root ユーザーのログインを禁止します--> 40 MaxAuthTries 6 <!--再試行の最大回数は 6 回です--> 67 PermitEmptyPasswords no <!--空のパスワードを持つユーザーのログインを禁止します--> ...... <!--ここでは一部内容を省略しています--> [root@centos01 ~]# systemctl restart sshd <!--sshd サービスを再起動します--> 2. ログイン認証方法 サーバーのリモート管理では、ユーザー アカウントのセキュリティ制御に加えて、ログインの検証方法も非常に重要です。 sshd サービスは、パスワード認証とキーペア認証の 2 つの認証方法をサポートしています。どちらか一方だけを使用するように設定することも、両方を有効にするように設定することもできます。 パスワード検証: サーバーのローカル システム ユーザーのログイン名とパスワードを確認します。この方法は最も使いやすいですが、クライアント側から見ると接続先のサーバーが偽装されている可能性があり、サーバー側から見るとパスワードを使い果たしている第三者に遭遇した場合の防御力が比較的弱くなります。 キーペアの検証: 検証に合格するには、一致するキー情報が必要です。通常、最初にクライアント上にキー ファイルのペア (公開キーと秘密キー) が作成され、次に公開キー ファイルがサーバー上の指定された場所に配置されます。リモートでログインする場合、システムは暗号化/復号化の関連付けの検証に公開キーと秘密キーを使用するため、リモート管理のセキュリティが大幅に強化されます。この方法は簡単には偽装できず、対話型ログインなしでログインできます。シェルで広く使用されています。 パスワード認証とキーペア認証の両方が有効になっている場合、サーバーはキーペア認証を優先します。セキュリティ要件が高いサーバーの場合は、パスワード認証方式を無効にし、キーペア認証方式のみを有効にすることをお勧めします。特別な要件がない場合は、両方の方式を有効にできます。 [root@centos01 ~]# vim /etc/ssh/sshd_config <!--sshdのメイン設定ファイルを編集します--> 43 PubkeyAuthentication yes <!--キーペア認証を有効にする--> 47 AuthorizedKeysFile .ssh/authorized_keys <!--公開鍵ライブラリファイルを指定します--> 66 PasswordAuthentication yes <!--パスワード認証を有効にする--> ...... <!--ここでは一部内容を省略しています--> [root@centos01 ~]# systemctl restart sshd <!--sshd サービスを再起動します--> 公開鍵ファイルは、複数のクライアントによってアップロードされた公開鍵テキストを保存し、クライアントのローカル秘密鍵ファイルと一致させるために使用されます。 2. SSHクライアントプログラムの使用 Centos 7.4 システムでは、OpenSSH クライアントは openssh-clients パッケージ (デフォルトでインストール) によって提供され、ssh リモート ログイン コマンドのほか、scp、sftp リモート コピー、ファイル転送コマンドも含まれています。 1. コマンドプログラム ssh リモートログイン ssh コマンドを使用すると、sshd サービスにリモートでログインして、ユーザーにサーバーの管理と保守を行うための安全なシェル環境を提供できます。使用する場合、ログインユーザーとターゲットホストアドレスをパラメータとして指定する必要があります。次に例を示します。 [root@centos02 ~]# ssh [email protected] [email protected]のパスワード: 最終ログイン: 2019年11月11日月曜日 19:02:50 192.168.100.254から [root@centos01 ~]# [root@centos01 ~]# [root@centos01 ~]# ssh [email protected] ホスト '192.168.100.10 (192.168.100.10)' の信頼性を確立できません。 ECDSA キーのフィンガープリントは SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I です。 ECDSA キーのフィンガープリントは MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b です。 本当に接続を続行しますか (はい/いいえ)? はい <!--キーを受け入れます--> 警告: '192.168.100.10' (ECDSA) が既知のホストのリストに永続的に追加されました。 [email protected] のパスワード: <!-- パスワードを入力 --> 最終ログイン: 2019年11月11日月曜日 19:03:08 192.168.100.20から [root@centos01 ~]# who <!--現在のユーザーを確認します--> ルート pts/1 2019-11-11 19:03 (192.168.100.20) ルートpts/2 2019-11-11 19:04 (192.168.100.10) sshd サーバーがデフォルト以外のポート (2222 など) を使用する場合は、ログイン時に "-p" オプションを使用してポート番号を指定する必要があります。次に例を示します。 [root@centos01 ~]# vim /etc/ssh/sshd_config<!--sshのメイン設定ファイルを変更します--> ポート 2222 <!-- リスニング ポート番号を 2222 に変更します --> [root@centos01 ~]# systemctl restart sshd <!--sshd サービスを再起動します--> [root@centos02 ~]# ssh -p 2222 [email protected] <!--クライアントログインssh--> [email protected] のパスワード: <!-- パスワードを入力 --> 最終ログイン: 2019年11月11日月曜日 19:20:28 192.168.100.10から [root@centos01 ~]# <!--ログイン成功--> 2. SCPリモートコピー scp コマンドは、SSH セキュア接続を使用してリモート ホスト間でファイルをコピーするために使用できます。scp コマンドを使用する場合は、コピー元とコピー先の指定に加えて、コピー先ホストのアドレスとログイン ユーザーも指定する必要があります。実行後、プロンプトに従って確認パスワードを入力します。次に例を示します。 [root@centos02 ~]# scp ルート@192.168.100.10:/etc/ssh/sshd_config ./ <!-- リモート ホストのデータをローカル データにコピーし、現在の場所に保存します --> [email protected] のパスワード: <!-- パスワードを入力 --> sshd_config 100% 3910 3.6MB/秒 00:00 [root@centos02 ~]# scp -r ./sshd_config ルート@192.168.100.10:/opt <!-- リモート ホスト ディレクトリにローカル データをアップロードします --> [email protected] のパスワード: <!-- パスワードを入力 --> sshd_config 100% 3910 1.2MB/秒 00:00 3. sftpはFTPをインストールします sftp コマンドを使用すると、SSH セキュア接続を使用してリモート ホストにファイルをアップロードおよびダウンロードできます。FTP に似たログイン プロセスと対話型環境を使用するため、ディレクトリ リソースの管理が容易になります。次に例を示します。 [root@centos01 ~]# cd /opt/ <!--opt ディレクトリに入る--> [root@centos01 opt]# sftp [email protected] <!--sftpにログイン--> [email protected] のパスワード: <!-- パスワードを入力 --> 192.168.100.20 に接続しました。 sftp> pwd <!-- クライアントが sftp にログインする場所を表示します。デフォルトの場所はホスト ディレクトリです --> リモート作業ディレクトリ: /root sftp> put sshd_config <!--リモートホストにデータをアップロード--> sshd_config を /root/sshd_config にアップロードしています sshd_config 100% 3910 6.4MB/秒 00:00 sftp> get sshd_config <!-- データをローカルにダウンロード --> /root/sshd_config を sshd_config に取得しています /root/sshd_config 100% 3910 3.6MB/秒 00:00 sftp> exit <!--ログアウト--> 3. キーペア検証SSHシステムの構築 キーペア認証により、リモート ログインのセキュリティを強化できます。 Linux サーバーおよびクライアントで SSH システムを認証するためのキー ペアを構築する基本的なプロセス。下の図に示すように、プロセス全体には 4 つのステップがあります。まず、SSH クライアントでユーザー zhangsan としてキー ペアを作成し、作成した公開鍵ファイルを SSH サーバーにアップロードする必要があります。次に、公開鍵情報をサーバー上のターゲット ユーザー lisi の公開鍵データベースにインポートする必要があります。最後に、サーバー上でユーザー lisi としてログインして検証します。 1. クライアントでキーペアを作成する クライアントで、ssh-keygen ツールを使用して、現在のユーザーのキー ペア ファイルを作成します。使用可能な暗号化アルゴリズムは ECDSA または DSA です (アルゴリズムの種類を指定するには、ssh-keygen コマンドの "-t" オプションを使用します)。次に例を示します。 [root@centos02 ~]# ssh-keygen -t dsa <!--キーペアを作成--> 公開/秘密 DSA キー ペアを生成しています。 キーを保存するファイル (/root/.ssh/id_dsa) を入力してください: <!-- 秘密キーの場所を指定します --> ディレクトリ '/root/.ssh' を作成しました。 パスフレーズを入力してください (パスフレーズがない場合は空白): <!-- 秘密キーフレーズを設定 --> 同じパスフレーズをもう一度入力してください: <!-- 設定したフレーズを確認してください --> あなたの識別情報は /root/.ssh/id_dsa に保存されました。 公開鍵は /root/.ssh/id_dsa.pub に保存されました。 キーのフィンガープリントは次のとおりです。 SHA256:zv0EdqIuOfwSovN2Dkij08y9wZ0f1+IyhY7LFNKKzkk ルート@centos02 キーのランダムアート画像は次のとおりです。 +---[DSA 1024]----+ | | | | | | | . | | o . o S.+ . | | * *.+.=.+.= | |o E.*o+==.+ o | | =o..*Oo++ + | | ++oo++o. . | +----[SHA256]-----+ [root@centos02 ~]# ls -lh ~/.ssh/id_dsa* <!--生成されたキーファイルを確認します--> -rw------ 1 ルート ルート 668 11月12日 16:11 /root/.ssh/id_dsa -rw-r--r-- 1 ルート ルート 603 11月12日 16:11 /root/.ssh/id_dsa.pub 新しく生成されたキー ペア ファイルでは、id_das は秘密キー ファイルであり、デフォルトの権限は 600 です。秘密キー ファイルは適切に保管する必要があり、他者に公開することはできません。id_dsa.pub は、ssh サーバーに提供するために使用される公開キー ファイルです。 2. 公開鍵ファイルをサーバーにアップロードする 前の手順で生成された公開鍵ファイルをサーバーにアップロードし、サーバー側ユーザーの公開鍵データベースに展開します。公開鍵ファイルをアップロードするときは、SCP、FTP、HTTP などの任意の方法を選択したり、電子メールで送信したりすることもできます。 root@centos02 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub [email protected] <!--公開鍵ファイルをサーバーにアップロードし、公開鍵テキストをインポートします--> /usr/bin/ssh-copy-id: INFO: インストールされるキーのソース: "./.ssh/id_dsa.pub" ホスト '192.168.100.10 (192.168.100.10)' の信頼性を確立できません。 ECDSA キーのフィンガープリントは SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I です。 ECDSA キーのフィンガープリントは MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b です。 接続を続行しますか (はい/いいえ)? はい <!--はいを入力--> /usr/bin/ssh-copy-id: INFO: すでにインストールされているキーを除外するために、新しいキーでログインしようとしています /usr/bin/ssh-copy-id: INFO: インストールするキーが 1 つ残っています -- ここでプロンプトが表示された場合は、新しいキーをインストールしてください [email protected] のパスワード: <!-- パスワードを入力 --> 追加されたキーの数: 1 ここで、「ssh '[email protected]'」を使用してマシンにログインしてみます。 必要なキーだけが追加されたことを確認します。 3. クライアントでキーペア認証を使用する 秘密鍵ファイル (クライアント) と公開鍵ファイル (サーバー) がデプロイされると、クライアントでテストできます。まず、クライアント上の現在のユーザーが root であることを確認してから、ssh コマンドを使用してサーバー ユーザー root としてリモートでログインします。キー ペア認証方法が正常に構成されている場合、クライアントは秘密キー フレーズの入力を求められます。これにより、秘密キー ファイルが呼び出され、照合できるようになります (秘密キー フレーズが設定されていない場合は、ターゲット サーバーに直接ログインします)。 [root@centos02 ~]# ssh [email protected] <!--sshサーバーにログイン--> 最終ログイン: 2019年11月12日火曜日 16:03:56 192.168.100.254から [root@centos01 ~]# who <!--サーバーに正常にログインし、どのユーザーがいるかを確認します--> ルート pts/0 2019-11-12 17:35 (192.168.100.20) ルートpts/2 2019-11-12 16:03 (192.168.100.254) 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQLデータベースのスケジュールバックアップを実装する方法
>>: JavaScript で外部変数にアクセスするサブ関数の 3 つのソリューション
CentOS 6.4 環境で MySQL 5.1 を 5.5.36 にアップグレードする手順を記録し...
システムをインタラクティブに監視したい場合は、htop コマンドが最適な選択肢の 1 つです。 ht...
目次1. v-on指令1. 基本的な使い方2. 糖衣構文3. イベントパラメータ4. イベント修飾子...
Web プロジェクトの開発プロセスでは、CSS ファイルや JS ファイルを参照することがよくあり...
停止したすべてのDockerコンテナを1つのコマンドで再起動するdocker ps -a | gre...
目次問題の説明:解決策1解決策2問題の説明:ページ A と B の 2 つがあり、各ページにはget...
アプリケーションシナリオ多くの場合、Linux サーバーに tomcat や nginx などのソフ...
MySQL では lastIndexOf に似た関数を使用する必要がある場合もありますが、すぐに使用...
目次1. 異なるビューポートを取得する方法2. 水平画面と垂直画面のJavaScript検出3. 水...
MQTT プロトコルMQTT (Message Queuing Telemetry Transpo...
目次1. コンポーネントの紹介2. コンポーネントの内部構造とロジック1. コード組織構造2. マッ...
これは、CSS 3.0 で実装されたテキストのホバーとジャンプ効果です。効果は次のとおりです。 以下...
Nestjs 例外フィルターといえば、非常に強力な .Net のグローバル フィルターについて触れな...
参考までにWeChatアプレットで書かれた簡単な計算機です。具体的な内容は次のとおりです。 jisa...
主にインストール後に my.ini ファイルを確認するために、msi 形式でインストールしました。フ...