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 可視化グラフィックツール portainer の詳細な説明

目次1. ポーテナーの紹介2. Portainer アーキテクチャの概要3. Portainerのイ...

Linux システムのパフォーマンスを分析するための top コマンドの詳細な説明

Linux topコマンドの紹介top コマンドは、Linux でよく使用されるパフォーマンス分析ツ...

LinuxにMySQLをインストールし、外部ネットワークアクセスを構成する例

設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...

Linux環境にMySQLデータベースをインストールする詳細なチュートリアル

1. データベースをインストールする1) yum -y install mysql-server (...

HTML における水平および垂直の中央揃え方法の詳細な説明 (基礎)

序文馬を書いていたとき、水平方向と垂直方向の中央揃えの方法について、誰もあまり知らなかったと思います...

CSS3 Flex エラスティックレイアウトのサンプルコードの詳細な説明

1. 基本概念 //任意のコンテナを Flex レイアウトとして指定できます。 。箱{ ディスプレイ...

シャトルボックス機能を実装するためのVueの詳細なコード

Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

フローティングメニューを実装するjQueryプラグイン

毎日jQueryプラグインを学ぶ - フローティングメニュー、参考までに、具体的な内容は次のとおりで...

自己終了XHTMLタグを書くときに注意すべきこと

XHTMLの img タグは、次のように記述する必要があります: <img alt="...

Windows で mysql5.7.21 をインストールするための詳細なチュートリアル

この記事では、参考までにMySQL 5.7.21のインストールチュートリアルを紹介します。具体的な内...

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作...

CentOS 8/RHEL 8 に Cockpit をインストールして使用する方法

Cockpit は、CentOS および RHEL システムで使用できる Web ベースのサーバー管...

JavaScript 配列の Reduce() メソッドの構文と例の分析

序文Reduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が単一の値...

Vue echarts は棒グラフの動的な表示を実現します

この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...