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で大きなテーブルをエレガントに削除する方法について簡単に説明します

目次1. 切り捨て操作1.1 MySQL truncate はどのような操作を実行しますか? 1.2...

MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

CSS を使用して 3 列のアダプティブ レイアウト (両側は固定幅、中央はアダプティブ) を実現します。

いわゆる 3 列適応レイアウトとは、両側の幅が固定され、中央のブロックの幅が適応されることを意味しま...

HTML で Web ページに動的な時計を書く

HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...

CSSスタイルシートを効率的に使用するためのヒント: スタイルシートの力を最大限に活用する

インターネット経済の継続的な発展に伴い、インターネット上の専門ウェブサイト、公共サービスウェブサイト...

Centos 7.4 サーバーの時刻同期設定方法 [NTP サービスに基づく]

この記事では、CentOS 7.4 サーバーで時刻同期を構成する方法について説明します。ご参考までに...

echarts と vue.js を統合する際に発生するいくつかの問題の概要

序文現在、私は Beetlex のデータ分析プラットフォームに取り組んでいます。この製品の開発では、...

Tomcat 実行時の JVM エンコーディングの問題を修正

質問:最近、プロジェクトを展開すると文字化けしたデータが出てきました。確認したところ、プロジェクトは...

Vueライフサイクルカメラの8つのフック関数

目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...

MySQL 面接でよく聞かれる質問への回答

序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職...

よくあるNginxの設定ミスの例

目次ルートの場所が見つかりませんオフバイスラッシュ安全でない変数の使用スクリプト名$uri を使用す...

MySQL における varchar 型と char 型の違い

目次前述のVARCHAR型VARCHAR適用可能な状況CHAR型テストVARCHAR(5)とVARC...

Vue スキャフォールディング学習プロジェクト作成方法

1. 足場とは何ですか? 1. Vue CLI Vue CLI は、Vue.js をベースにした迅速...

Ubuntu 16.04 で FTP サーバーを構築するチュートリアル

Ubuntu 16.04 FTP サーバーをビルドするftpをインストールするftp をインストール...

Dockerfile ビルド中に発生する「/bin/sh: pip: コマンドが見つかりません」という問題の解決方法

記述した Dockerfile の内容は次のとおりです。 Python:3.6.8 から pip i...