SSHはクライアントおよびサーバープロトコルであり、暗号化されたトンネルを介してネットワーク経由でリモートシステムにアクセスするのに役立ちます。クライアントマシンがSSHを実行しているサーバーにアクセスするたびに、クライアントはサーバーからセキュアキーをダウンロードすると同時に、サーバーはクライアントからキーもダウンロードします。これらの2つのキーにより、サーバーとクライアント間の暗号化されたトンネルが作成されるため、データはネットワーク上で非常に安全に転送されます。
組織に多数のサーバーがある場合、管理者がリモートシステムにアクセスするためにパスワードを入力する必要があるたびに。パスワードを複数回入力するのは面倒です。 SSHには、パスワードなしのログインと呼ばれる新機能が付属しており、パスワードを入力せずにリモートマシンにアクセスできます。
前提条件
ここには、2つの異なるユーザー名を持つ2台のマシンがあります。
ホスト名 | IPアドレス | ユーザー | OS | 目的 |
---|---|---|---|---|
server.itzgeek.local | 192.168.1.10 | raj | CentOS 7 / RHEL 7 | ソースマシン |
client.itzgeek.local | 192.168.1.20 | ram | CentOS 7 / RHEL 7 | 宛先マシン |
ここでは、IPアドレスの代わりにホスト名を使用します。
手順に従って、パスワードなしのログインを作成します。
CentOS7でSSHパスワードなしログインを設定する
パスワードなしのログインを有効にするには、クライアントマシンの公開鍵エントリをサーバーの〜/ .ssh / authorized_keys(〜はユーザーのホームディレクトリを表します)ファイルに配置する必要があります。
SSHパスワードレスログインは2つの方法で設定できます。いずれかの方法を選択してください。
- 自動–(推奨)
- 手動
この方法では、ソースマシンでSSHキーペアを生成し、1つのコマンドで宛先マシンに配置します。
ソースマシンにログインし、次のssh-keygenコマンドを使用してSSHキーペアを作成します。
[raj@server ~]$ ssh-keygen
出力:
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): << Press Enter Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): << Press Enter Enter same passphrase again: << Press Enter Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0oqVhWQzIV+hFFHkquVCTihmORqtt+vXHIXhhXoIosI [email protected] The key's randomart image is: +---[RSA 2048]----+ | . XB=. | |. . *oB. | |o. . +++o | |oE..o +=. | |+=o o.*.S | |++.+ *.o | |o . =oo. | | . ...o | | .+o | +----[SHA256]-----+
作成すると、.sshディレクトリ内にid_rsaとid_rsa.pubの2つのファイルがあります。パスワードなしのログインにはid_rsa.pubを使用します。
[raj@server ~]$ ls -al ~/.ssh/
出力:
total 8 drwx------. 2 raj raj 38 Sep 6 00:37 . drwx------. 3 raj raj 74 Sep 6 00:37 .. -rw-------. 1 raj raj 1675 Sep 6 00:37 id_rsa -rw-r–r–. 1 raj raj 406 Sep 6 00:37 id_rsa.pub
id_rsa.pubの入力ファイルでssh-copy-idコマンドを使用します。
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]ssh-copy-idコマンドは、ファイルが作成しない場合、宛先マシンに〜/ .ssh/authorized_keysを作成します。それ以外の場合、ssh-copy-idは新しいキーを既存のキーに追加します。
出力:
The authenticity of host 'client.itzgeek.local (192.168.1.20)' can't be established. ECDSA key fingerprint is SHA256:sueTz6FURcKDbeyGkpE7lUHOaosW/rkkvlG18v98T7Y. ECDSA key fingerprint is MD5:f7:39:52:7e:2e:a4:20:84:ff:d7:72:21:20:36:91:76. Are you sure you want to continue connecting (yes/no)? yes << Type Yes and Press Enter /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: << Enter password of destination machine user (ram) Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
この方法では、ソースマシンでSSHキーペアを生成し、手動でログインして宛先マシンに配置します。
まず、ソースマシンにログインし、次のコマンドを使用してSSHキーペアを作成します。
[raj@server ~]$ ssh-keygen
出力:
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): << Press Enter Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): << Press Enter Enter same passphrase again: << Press Enter Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0oqVhWQzIV+hFFHkquVCTihmORqtt+vXHIXhhXoIosI [email protected] The key's randomart image is: +---[RSA 2048]----+ | . XB=. | |. . *oB. | |o. . +++o | |oE..o +=. | |+=o o.*.S | |++.+ *.o | |o . =oo. | | . ...o | | .+o | +----[SHA256]-----+
作成すると、.sshディレクトリ内にid_rsaとid_rsa.pubの2つのファイルがあります。パスワードなしのログインにはid_rsa.pubを使用します。
[raj@server ~]$ ls -al ~/.ssh/
出力:
total 8 drwx------. 2 raj raj 38 Sep 6 00:37 . drwx------. 3 raj raj 74 Sep 6 00:37 .. -rw-------. 1 raj raj 1675 Sep 6 00:37 id_rsa -rw-r--r--. 1 raj raj 406 Sep 6 00:37 id_rsa.pubscpコマンドを使用して、id_rsa.pubを宛先にコピーするか、id_rsa.pubファイルの内容をコピーして宛先マシン(〜/ .ssh / authorized_keysファイル)に貼り付けることができます。
コピー方法:1
宛先マシンにログインし、ユーザーのホームディレクトリに.sshディレクトリが存在しない場合は作成します。
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
scpを使用する id_rsa.pubをコピーするコマンド 宛先マシンの/tmpへ ディレクトリ。
[raj@server ~]$ scp -pr ~/.ssh/id_rsa.pub [email protected]:/tmp
パスワードなしのログインはまだ構成されていないため、宛先のパスワードを入力する必要があります。
パスワードなしでログインするには、ソースキーをauthorized_keysファイルに配置します。
[ram@client ~]$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
ファイルの権限を更新します。
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
コピー方法:2
宛先マシンにログインし、ユーザーのホームディレクトリに.sshディレクトリが存在しない場合は作成します。
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
authorized_keysファイルを編集します。
[ram@client ~]$ vi ~/.ssh/authorized_keys
ソースマシンで、catコマンドを使用してid_rsa.pubファイルの内容を表示します。コンテンツを選択してコピーします(PUTTYを使用していると仮定します)。
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
出力: (サンプル)
上記のコンテンツを宛先のauthorized_keysファイルに配置して保存します。次に、ファイルの権限を更新します。
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
パスワードなしのログインをテストする
次に、SSHを使用してリモートマシンにアクセスします。パスワードを尋ねることなく、シェルに直接移動します。
[raj@server ~]$ ssh [email protected] [ram@client ~]$ uname -a
結論
それで全部です。このパスワードなしのログインは、システム管理者の時間とエネルギーを節約します。コメントセクションでフィードバックを共有してください。