ウェブサイト検索

LinuxでSSHパスワードレスログインを設定する方法


SSH(セキュアシェル)は、コマンドやプログラムを実行するためにリモートサーバーにログインするために使用されるオープンソースで信頼できるネットワークプロトコルです。

これは、ネットワークを介して別のコンピュータにファイルを転送するために、安全なコピー(SCP)コマンドとrsyncコマンドを使用するためにも使用されます。

この記事では、CentOS、Fedora、Rocky Linux、AlmaLinuxなどのRHELベースのLinuxディストリビューションや、Ubuntu、MintなどのDebianベースのディストリビューションで、sshキーを使用してリモートLinuxサーバーにパスワードを入力せずに接続する方法を説明します。

パスワードなしでのログインをSSHキーを使用することで、2つのLinuxサーバー間の信頼が高まり、ファイルの同期や転送が容易になります。

私のセットアップ環境
SSH Client : 192.168.0.12 ( Fedora 36 )
SSH Remote Host : 192.168.0.11 ( CentOS 8 )

複数のLinuxリモートサーバーを扱っている場合、SSHパスワードなしログインは、自動バックアップやSCPコマンドを使用したファイルの同期、リモートコマンドの実行などのタスクを自動化するための最良の方法の一つです。

この例では、サーバー192.168.0.12のユーザーtecmintから192.168.0.11のユーザーsheenaへのSSHパスワードなしの自動ログインを設定します。

ステップ1: 認証用SSHキーを作成する - (192.168.0.12)

最初に、ユーザーtecmintを使用してサーバー192.168.0.12にログインし、次のコマンドを使用して一対の公開鍵を生成します。

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/tecmint/.ssh/id_rsa): [Press enter key]
Created directory '/home/tecmint/.ssh'.
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Press enter key]
Your identification has been saved in /home/tecmint/.ssh/id_rsa.
Your public key has been saved in /home/tecmint/.ssh/id_rsa.pub.
The key fingerprint is:
5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 [email 
The key's randomart image is:
+--[ RSA 2048]----+
|        ..oooE.++|
|         o. o.o  |
|          ..   . |
|         o  . . o|
|        S .  . + |
|       . .    . o|
|      . o o    ..|
|       + +       |
|        +.       |
+-----------------+

ステップ2:SSHキーをアップロード - 192.168.0.11

サーバー192.168.0.12からSSHを使用して、新しく生成された公開鍵(id_rsa.pub)をサーバー192.168.0.11のsheenaの.sshディレクトリにファイル名authorized_keysとしてアップロードしてください。

$ ssh-copy-id [email 

リモートサーバー上の~/.sshディレクトリと~/.ssh/authorized_keysファイルに正しいアクセス許可が設定されていることを確認してください。

$ ssh [email  "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

ステップ3: パスワード認証を無効にする(オプション)

セキュリティを向上させるために、リモートサーバーでパスワード認証を無効にし、SSHキー認証のみを許可することができます。このためには、リモートサーバーのSSHサーバー設定ファイルを開いてください:

$ sudo nano /etc/ssh/sshd_config
OR
sudo vi /etc/ssh/sshd_config

PasswordAuthenticationを含む行を見つけて、それをnoに設定してください。

PasswordAuthentication no

ファイルを保存してSSHサービスを再起動してください。

$ sudo systemctl restart sshd

ステップ4: 192.168.0.12からSSHパスワードレスログインをテストする

これからは、サーバー192.168.0.12からsheenaユーザーとして192.168.0.11にログインできるようになります。パスワードなしでtecmintユーザーとしてです。

$ ssh [email 

この記事では、SSHキーを使用してSSHパスワードなしログインを設定する方法を学びました。このプロセスは簡単だったと思います。質問がある場合は、下のコメントセクションに投稿してください。

関連記事: