Linux サーバーを管理している場合は、SSH 経由でログインしたり、scp を使用してファイルをコピーしたりするたびにパスワードを入力するのがどれほど面倒であるかをご存知でしょう。このチュートリアルでは、SSH パスワードなしのログインを実現するための SSH キーの使用方法を紹介します。scp を使用してファイルをコピーする場合、パスワードを入力する必要はありません。 SSH ログインと SCP ファイルのコピーを容易にすることに加えて、SSH パスワードなしログインにより、Linux サーバーに別のセキュリティが追加されます。

SSH パスワードなしログインのセットアップ手順

  1. まず、Linux システム上で SSH キーのペア (SSH キーと SSH 公開キー) を生成します。キーは独自の Linux システム上に保持されます。
  2. 次に、公開キーが Linux サーバーにアップロードされます。その後、パスワードなしで SSH 経由でログインできるようになります。 SSH キーは身元証明のようなものです。

1 独自の Linux システムで SSH キーと公開キーを生成する

ターミナルを開き、以下の ssh-keygen を使用して RSA キーと公開キーを生成します。 -t はタイプを示し、RSA 暗号化キーを生成することを意味します。

 
ssh-keygen -t rsa

RSA はデフォルトの暗号化タイプでもあります。したがって、単に ssh-keygen と入力することもできます。デフォルトの RSA 長は 2048 ビットです。セキュリティを非常に重視する場合は、4096 ビットの長さを指定できます。

ssh-keygen -b 4096 -t rsa

SSH キーの生成プロセス中に、キーを保存するファイルを指定するように求められます。Enter キーを押すだけでデフォルトのファイルを使用できます。次に、SSH キーを暗号化するためのパスワードを入力する必要があります。パスワードは 20 文字以上である必要があります。 SSH キーは、ホーム ディレクトリの .ssh/id_rsa ファイルに保存されます。 SSH 公開キーは、.ssh/id_rsa.pub ファイルに保存されます。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/matrix/.ssh/id_rsa):  按Enter键
Enter passphrase (empty for no passphrase):   输入一个密码
Enter same passphrase again:   再次输入密码
Your identification has been saved in /home/matrix/.ssh/id_rsa.
Your public key has been saved in /home/matrix/.ssh/id_rsa.pub.
The key fingerprint is:
e1:dc:ab:ae:b6:19:b0:19:74:d5:fe:57:3f:32:b4:d0 matrix@vivid
The key's randomart image is:
+---[RSA 4096]----+
| .. |
| . . |
| . . .. . |
| . . o o.. E .|
| o S ..o ...|
| = ..+...|
| o . . .o .|
| .o . |
| .++o |
+-----------------+

.ssh/id_rsa ファイルを見ると、このファイルが暗号化されていることがわかります。つまり、入力したパスワードで暗号化されます。

less .ssh/id_rsa

 

2SSH公開キーをLinuxサーバーにアップロードします

これは、ssh-copy-id コマンドを使用して実行できます。

ssh-copy-id username@remote-server

 

リモート ユーザーのパスワードを入力すると、SSH 公開キーが自動的にアップロードされます。 SSH 公開キーは、リモート Linux サーバーの .ssh/authorized_keys ファイルに保存されます。

アップロード完了後は、SSH ログイン時に再度パスワードを入力する必要はありません。ただし、SSHキーを使用して初めてログインする場合は、SSHキーの暗号化パスワードを一度入力する必要があります。 (一度入力するだけで、次回からは自動的にログインされます。キーのパスワードを入力する必要はなくなります。)

scp コマンドを使用してファイルを転送する場合、パスワードを入力する必要はありません。

SSH キーの知識

Linux システムにはキーリング管理プログラムがあります。キー リングはユーザーのログイン パスワードによって保護されます。 Linux システムにログインすると、キー リングのパスワードが自動的にロック解除され、キー リングにアクセスできるようになります。 SSH キーのパスワードもキーリングに保存できます。したがって、SSH キーを使用してリモート Linux サーバーに初めてログインするときは、SSH キーのパスワードを 1 回入力する必要があります。将来的には、SSH キーを使用してログインするときにパスワードを入力する必要はなくなります。 Ubuntu のキーリング プログラムは seahorse です。

SSH キーは身元証明のようなものです。リモート Linux サーバーは、生成された SSH 公開キーを使用してメッセージを暗号化し、SSH キーのみがメッセージを復号化できます。したがって、他の人があなたの SSH キーを持っていない場合、暗号化されたメッセージを復号化することができず、その結果、あなたの Linux サーバーにログインできなくなります。

SSH パスワードなしログインの設定は非常に簡単です。

返信を残す