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

推薦する

webpackでvue環境を構築する際の異常なエラーを解決する

目次まず、package.jsonを設定します次にwebpackツールをインストールしますwebpa...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

Reactプロジェクトの新規作成からデプロイまでの実装例

新しいプロジェクトを始めるこの記事では主に、新規プロジェクトを0から1まで取り組むプロセスを記録し、...

React NativeのScrollViewプルダウンリフレッシュ効果

この記事では、React Native ScrollViewのプルダウンリフレッシュ効果の具体的なコ...

MySQLでよく使われる文字列関数トップ10の詳細な説明

こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

ブラウザの互換モードでボタン内のテキストが垂直方向に中央揃えにならない問題について簡単に説明します。

XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...

dockerでビルドしたnacos1.3.0の実装

1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...

JavaScriptのループの違いについての詳細な説明

目次序文列挙可能なプロパティ反復可能なオブジェクトforEachメソッドとmapメソッドチェーン呼び...

SQLはLeetCodeを実装します(180.連続した数字)

[LeetCode] 180. 連続した数字少なくとも 3 回連続して出現するすべての数字を検索す...

Xmeter APIインターフェーステストツールの使用状況の分析

XMeter API は、以下のサービスを含む、JMeter に基づくワンストップのオンライン イン...

MySQL の NOT IN 充填ピットの NULL 列の問題の解決方法

以前、会社で小さな機能に取り組んでいたとき、特定の状況でデータがいくつあるかを数えてから問題を修正し...

Vueはカードフリップ効果を実現します

この記事では、カードフリップ効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

WeChatアプレットはシンプルな手書き署名コンポーネントを実装します

目次背景:必要:効果1. アイデア2. 実装1. ページとスタイル2. 初期化3. クリックすると4...

Vueコンポーネントのルーティング強調表示問題の解決策

序文以前は、キャッシュを使用してルートを強調表示していました。すべてのルートをトラバースし、クリック...