SSH(セキュアシェル) は、ユーザーがリモートのLinuxシステムやその他のネットワークデバイスに安全にログインできるようにする安全なオープンソースネットワークプロトコルです。さらに、このプロトコルは、セキュアコピー(SCP)プロトコルを使用したLinuxシステム間のファイル転送に使用されます。 。
通常、SSHはログイン前にユーザーにパスワードの入力を求めます。ただし、Linuxシステムから別のリモートLinuxシステムへのSSHパスワードなしログインを構成できます。これにより信頼性が高まり、SCPプロトコルを使用してリモートでファイルをバックアップする必要があるcronジョブで役立ちます。
このガイドでは、sshキーを使用してパスワードなしのSSHログインを設定し、2台のサーバー間の信頼を高める方法を学習します。
環境のセットアップ
ssh client : 66.152.163.19 (Ubuntu 18.04)
ssh remote Host : 173.82.2.236 (CentOS 7)
クライアントシステムでSSHキーを生成します(66.152.163.19)
パスワードなしのログインを設定する最初のステップは、クライアントシステムでssh認証キーを生成することです。 SSHキーは、Linuxシステム間の信頼を確立するデジタルキーです。
sshキーを生成するには、コマンドを実行します。
$ ssh-keygen
キーを保存するファイルの入力を求められます。 [Enter]キーを押して、デフォルトの場所のディレクトリ(/root/.ssh)に保存します
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enterキーを押します。
次に、パスフレーズの入力を求められます。これはパスワードなしのログインを設定しています。スキップするには「Enter」を2回押してください。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
どちらの場合も「Enter」を押してください。
完全な出力を以下に示します。
サンプル出力
ssh-keygen
コマンドは公開と秘密の両方のsshキーを生成し、それらを/root/.ssh
に保存します ディレクトリ。
実行を確認するには:
ls /root/.ssh
サンプル出力
公開鍵はid_rsa.pub
で示されます 。
秘密鍵はid_rsa
で示されます 。
ssh公開鍵をリモートシステムにコピーする(173.82.2.236)
次のステップは、公開鍵をリモートLinuxサーバーにコピーすることです。これは、ssh-copy-id
を使用して実現されます 以下に示すコマンド。
ssh-copy-id remote_username@server_ip_address
この例では、コマンドは次のようになります。
ssh-copy-id [email protected]
接続を続行するかどうかを確認するメッセージが表示されます。 yes
と入力します 「Enter」を押します
The authenticity of host '173.82.2.236 (173.82.2.236)' can't be established.
ECDSA key fingerprint is SHA256:U4aOk0p30sFjv1rzgh73uhGilwJ2xtG205QFqzB9sns.
Are you sure you want to continue connecting (yes/no)? yes
次に、リモートシステムのパスワードの入力を求められます。パスワードを入力して[Enter]キーを押します
[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公開鍵は/root/.ssh/authorized_keys
に保存されます リモートシステム上のファイル。
リモートシステムへのログイン
公開sshキーをリモートシステムにコピーすると、図のようにパスワードの入力を求められることなくログインできるようになります。
ssh server-ip-address
私たちの場合、これは次のようになります:
ssh 173.82.2.236
これが、クライアントLinuxシステムからリモートLinuxサーバーへのパスワードなしのSSHセットアップをセットアップする方法です。
- クライアントシステムから公開鍵を削除します。秘密鍵が危険にさらされていると思われる場合は、リモートサーバーから公開鍵を削除して、再度設定してください。
- 上記のSSHコマンドは、両方のサーバーでrootユーザーを使用しているため、ユーザーIDを指定しなくても機能します。他のユーザーにパスワードなしのログインを設定している場合は、SSHコマンドでもそのログインを指定してください。