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ルーティング開発

推薦する

Dockerコンテナアプリケーションログの表示方法

docker アタッチコマンドdocker attach [options] 容器実行中のコンテナに...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...

MySQL が uuid または snowflake id を主キーとして使用することを推奨しない理由の詳細な分析

前書き: MySQL でテーブルを設計する場合、MySQL では UUID や非連続かつ非繰り返しの...

Nginx プロキシを使用してインターネットを閲覧する方法

私は通常、Tomcatや他のアプリケーションのリバースプロキシとしてnginxを使用しています。実際...

Web ページ制作におけるテーブル属性 CellPad、CellSpace、Border の説明と使用

cellspacing は表内のセル間の距離です。セルパディングは、表のセル内の空白スペースです。一...

Linux システムで grub.cfg ファイルの破損を修復する手順

目次1. grub.cfg ファイルの紹介1. grub.cfg ファイルの場所2. grub.cf...

mysql MDLメタデータロックの詳細な分析

序文: MySQL で SQL 文を実行すると、予想した時間内に文が完了しません。このような場合、通...

JavaScript でカルーセル効果を実装する

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

例によるMySql CURRENT_TIMESTAMP関数の分析

時間フィールドを作成するときデフォルトのCURRENT_TIMESTAMPデータを挿入する際、このフ...

webpackのモバイル適応ソリューションの概要

目次レムフォルクスワーゲンサードパーティのUIフレームワークに適応する結論モバイル開発における最も一...

Dockerはredis 5.0.7をインストールし、外部構成とデータの問題をマウントします

Redis は、ANSI C で記述されたオープンソースの NoSQL データベースであり、ネットワ...

Apache をインストールした後、サービスを開始できません (サービスを開始するとエラー コード 1 が表示されます)

目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...

Alibaba Cloud ECSインスタンスのユーザールートパスワードとリモート接続方法を設定する方法

Alibaba Cloud サーバーを購入した後、新しいインスタンスが正常に動作できるようにするには...

JSはフロントエンドのページング効果を実現します

この記事の例では、フロントエンドのページング効果を実現するためのJSの具体的なコードを参考までに共有...

MySQL ログの設定と表示方法

MySQL には次のログがあります。エラーログ: -log-errクエリログ: -logスロークエリ...