Linux での SSH パスワードフリーログイン設定の詳細な説明

Linux での SSH パスワードフリーログイン設定の詳細な説明

Linux サーバー A と B が 2 台あり、一方のサーバーから SSH 経由でパスワードなしでもう一方のサーバーにログインできるようにしたいとします。

2 つのサーバーの情報は次のとおりです。

ホスト名IPアドレスパスワード不要のログインユーザー名
サーバー1 192.168.12.11ゲスト1
サーバー2 192.168.12.12ゲスト2

環境設定(ルート権限)

1. ファイアウォールとSELinuxをオフにする

Redhat はセキュリティを強化するために SELinux を使用します。これを無効にする方法は次のとおりです。

a. /etc/selinux/config ファイルの SELINUX=enforcing を SELINUX=disabled に永続的に変更し、再起動します。

b. 暫定的な効力
強制0を設定する
ファイアウォールをオフにするには:

a. 永続的に有効にする: chkconfig iptables on
無効にする: chkconfig iptables off

b. 一時的な起動: service iptables start
シャットダウン: サービス iptables 停止
2 台のサーバーを個別に構成し、ファイアウォールと SELinux をオフにする必要があります。

2. ホスト名を設定する

コマンド vim /etc/sysconfig/network を使用して /etc/sysconfig/network ファイルを編集し、形式を HOSTNAME=[ホスト名] に設定します。
サーバーAのホスト名をserver1に設定します。

サーバーBのホスト名をserver2に設定します。

3. ホストを構成する

vim /etc/hosts コマンドを使用して /etc/hosts ファイルを編集し、2 つのサーバーのホスト ファイルに次の構成を追加します。

192.168.12.11 サーバー1
192.168.12.12 サーバー2 

4. sshdを設定する

次のコマンドを使用して、両方のサーバーの /etc/ssh/sshd_config ファイルを編集します: vim /etc/ssh/sshd_config。

次の 3 行から「#」コメントを削除します。

RSA認証はい
公開鍵認証はい
承認済みキーファイル .ssh/authorized_keys

次のコマンドを使用して sshd サービスを再起動します: /sbin/service sshd restart。

キー設定

1. パスワード不要のログインアカウントを作成する

コマンドを使用します:

useradd guest1 //新しいユーザーを作成 passwd guest1 //新しいユーザーのログインパスワードを設定

同様に、server2 に guest2 アカウントを作成します。

2. 秘密鍵を生成する

ルート ユーザーからパスワードなしでログインするアカウントに切り替えるには、コマンド su guest1 を使用します。

次のコマンドを実行します: ssh-keygen -t rsa

パスワードは必要ありません。Enter キーを押すだけです。コマンドを実行すると、guest1 ユーザーのホーム ディレクトリ (/home/guest1/.ssh) に 2 つのファイルが生成されます。

id_rsa: 秘密鍵 id_rsa.pub: 公開鍵

同じ手順に従って、server2 の guest2 アカウントのキー ファイルを生成します。

3. 公開鍵を認証ファイルにインポートする

コマンドを使用します:

cat /home/guest1/.ssh/id_rsa.pub >> /home/guest1/.ssh/authorized_keys
ssh guest2@server2 cat /home/guest2/.ssh/id_rsa.pub >> authorized_keys 

次のように、cat authorized_keys コマンドを使用して authorized_keys ファイルの内容を表示します。

4. ファイルのアクセス権限を設定する

コマンドを使用します:

chmod 700 /home/guest1/.ssh
chmod 600 /home/guest1/.ssh/authorized_keys

上記の設定を完了すると、server1 は ssh guest1@server1 コマンドを使用して、パスワードなしでローカル マシンにログインできるようになります。

注意: known_hosts ファイルにホスト名情報がない場合は、次のメッセージが表示されます。yes と入力して、ホスト名を known_hosts ファイルに書き込み、正常にログインします。

この時点で、ホスト server1 の SSH パスワードフリー ログイン構成は完了です。次に、server2 を構成します。

5. 認証ファイルを他のホストにコピーする

次のコマンドを実行して、生成された authorized_keys ファイルと known_hosts ファイルを server1 から server2 にコピーします。

# scp [転送するローカルファイル] [リモートホストのユーザー名]@リモートホストのIPまたはホスト名:[ファイルの転送先の場所]
scp /home/guest1/.ssh/authorized_keys guest2@server2:/home/guest2/.ssh/authorized_keys
scp /home/guest1/.ssh/known_hosts guest2@server2:/home/guest2/.ssh/known_hosts 

コピーが完了したら、次のコマンドを使用してファイルのアクセス権限を設定します。

chmod 700 /home/guest2/.ssh
chmod 600 /home/guest2/.ssh/authorized_keys

次に、ssh guest1@server1 コマンドを実行して、server2 の guest2 アカウントを使用して、パスワードなしで server1 の guest1 アカウントにログインします。

この時点で、2 つのサーバーの SSH パスワードフリー ログインが設定されました。エラーが発生した場合は、上記の手順を慎重に確認してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux (Ubuntu) ユーザーがログイン時に N 回連続して間違ったパスワードを入力すると、システムは自動的に X 分間ロックされます。
  • Linux にバイナリ MySQL をインストールして MySQL パスワードをクラックする方法
  • Linuxのルートパスワードを忘れましたか?シングルユーザーモードに入る実行レベルを切り替えるユーザーを切り替える
  • Linux 3.X/4.x/5.x でパゴダ パネルのパスワードを忘れた場合の解決方法

<<:  MySQL 8.0.12 のインストールと設定のチュートリアル

>>:  実用的なクイックスタートReactルーティング開発

推薦する

MySQL実践ウィンドウ関数SQL分析クラスの生徒のテストの成績と生活費

目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

マークアップ言語 - リスト再び

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...

Mysqlサーバーのインストール、構成、起動、シャットダウン方法の詳細な説明

1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...

CentOS で MySQL を完全にアンインストールする方法

この記事では、CentOSでのMySQLの完全アンインストールについて記録しています。具体的な内容は...

HTML/CSSにおける記号論の詳細な説明

この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...

高品質なJavaScriptコードの書き方

目次1. 読みやすいコード1. 統一コード形式2. マジックナンバーを削除する3. 単一機能原則2....

ウェブページをデザインする際に注意すべきいくつかの問題

Web デザインは、個人の好みや Web ページの内容に応じて、デザインのレイアウトが常に変化します...

DOM操作テーブルの例(DOMはテーブルを作成します)

1. HTML タグを使用してテーブルを作成します。コードをコピーコードは次のとおりです。 <...

htm 初心者ノート(初心者は必ず読んでください)

1. HTMLとは何かHTML (ハイパーテキスト マークアップ言語): ハイパーテキスト マーク...

MySQLデータのセキュリティを確保するための提案

データは企業の中核資産であり、企業にとって最も重要なタスクの 1 つです。注意しないと、データが意図...

CentOS6.9 での MySQL 5.7.17 のインストールと設定のチュートリアル

CentOS6.9はMysql5.7をインストールします。参考までに、詳細は次のとおりです。 1. ...

react setStateの詳細な説明

目次setState は同期ですか、それとも非同期ですか?カスタム合成イベントと React フック...

MySQLのバージョンアップ方法を超詳しく解説

目次1. はじめに2. データベースをバックアップする3. オリジナルのMysqlをアンインストール...