SSHはクライアントおよびサーバープロトコルであり、暗号化されたトンネルを介してネットワーク経由でリモートシステムに安全にアクセスするのに役立ちます。 SSHには、ネットワークを介してファイルとディレクトリを転送するための組み込みのファイル転送メカニズム(SCP)があり、FTP(ファイル転送プロトコル)よりもはるかに安全です。
大規模な環境では、リモートマシンにアクセスするたびにパスワードを入力するのは面倒です。そのため、ログインを容易にするために、SSHパスワードなし機能を使用して、パスワードを入力せずにリモートマシンにアクセスできます。
ここでは、CentOS 8 /RHEL8でSSHパスワードなしのログインを設定する方法を説明します。
前提条件
ここには、2つの異なるユーザー名を持つ2台のマシンがあります。
ホスト名 | IPアドレス | ユーザー | OS | 目的 |
---|---|---|---|---|
server.itzgeek.local | 192.168.0.10 | raj | CentOS 8 / RHEL 8 | ソースマシン |
client.itzgeek.local | 192.168.0.20 | ram | CentOS 8 / RHEL 8 | 宛先マシン |
ここでは、IPアドレスの代わりにホスト名を使用します。
手順に従って、パスワードなしのログインを作成します。
CentOS8でSSHパスワードなしログインを設定
SSHパスワードなしログインを有効にするには、ローカルマシンの公開鍵エントリをリモートマシンの〜/ .ssh / authorized_keys(〜はユーザーのホームディレクトリを表します)ファイルに配置する必要があります。
SSHパスワードレスログインは2つの方法で設定できます。いずれかの方法を選択してください。
- ssh-copy-idコマンドの使用
- キーを手動でコピーする
ssh-copy-idコマンドの使用
この方法では、ソースマシンでSSHキーペアを生成し、1つのコマンド(ssh-copy-id)で宛先マシンに配置します。
ssh-copy-idコマンドは、生成されたSSH公開鍵を宛先の〜/ .ssh/authorized_keysファイル内の既存の鍵に追加します。 〜/ .ssh / authorized_keysファイルが宛先マシンに存在しない場合、コマンドはそれを作成し、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): Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: 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:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected] The key's randomart image is: +---[RSA 2048]----+ |+**o+.. | |o=+E X . | |.oX+& * | |.ooO.X = | |. = o * S | | o . + o | | . . o . | | o | | . | +----[SHA256]-----+
作成すると、.sshディレクトリ内にid_rsaとid_rsa.pubの2つのファイルがあります。 SSHパスワードなしのログインにはid_rsa.pub(公開鍵)を使用します。
[raj@server ~]$ ls -al ~/.ssh/
出力:
total 8 drwx------. 2 raj raj 38 Nov 7 21:50 . drwx------. 3 raj raj 74 Nov 7 21:50 .. -rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa -rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
公開鍵のコピー
id_rsa.pubの入力ファイルでopenssh-clientsパッケージに付属しているssh-copy-idコマンドを使用します。
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
出力:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/raj/.ssh/id_rsa.pub" The authenticity of host 'client.itzgeek.local (192.168.0.20)' can't be established. ECDSA key fingerprint is SHA256:z4TLSbno9MLNF1ucNq4gtMlLQDVgrfLKEt8JguchKdo. Are you sure you want to continue connecting (yes/no)? yes /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: 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): Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: 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:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected] The key's randomart image is: +---[RSA 2048]----+ |+**o+.. | |o=+E X . | |.oX+& * | |.ooO.X = | |. = o * S | | o . + o | | . . o . | | o | | . | +----[SHA256]-----+
作成すると、.sshディレクトリ内にid_rsaとid_rsa.pubの2つのファイルがあります。 SSHパスワードなしのログインにはid_rsa.pub(公開鍵)を使用します。
[raj@server ~]$ ls -al ~/.ssh/
出力:
total 8 drwx------. 2 raj raj 38 Nov 7 21:50 . drwx------. 3 raj raj 74 Nov 7 21:50 .. -rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa -rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
公開鍵のコピー
scpコマンドを使用して、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ファイルのコンテンツを表示します。
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
出力: (サンプル)
コンテンツをコピーして、宛先のauthorized_keysファイルに貼り付けて保存します。
次に、ファイルの権限を更新します。
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
次に、sshコマンドを使用してリモートマシンにアクセスします。
[raj@server ~]$ ssh [email protected]
これで、パスワードなしでリモートマシンにアクセスできるようになります。
結論
それで全部です。 CentOS 8 /RHEL8でSSHパスワードなしのログインをセットアップできることを願っています。コメントセクションでフィードバックを共有してください。