SSH(Secure Shell)は、セキュリティで保護されていないネットワーク上でネットワークサービスを安全に処理するために使用されます。例としては、リモートコマンドライン、ログイン、リモートコマンドの実行などがあります。
デフォルトでは、Ubuntu22.04ではSSH経由でrootアカウントにログインできません。これはセキュリティ機能です。SSHでrootパスワードをブルートフォースすることで誰かがサーバーにrootアクセスすることを望まないからです。ただし、このセキュリティの推奨事項を無視したい場合は、rootログインを有効にするのは簡単です。
このチュートリアルでは、Ubuntu 22.04JammyJellyfishでrootユーザーのSSHアクセスを有効にする方法を学習します。
このチュートリアルでは、次のことを学びます。
- SSHへのrootアクセスを有効にする方法
- SSHサービスを再起動する方法

カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
システム | Ubuntu22.04ジャミークラゲ |
ソフトウェア | OpenSSHサーバー |
その他 | rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 |
コンベンション | # –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
Ubuntu22.04でのSSHルートログインのステップバイステップの説明
- コマンドラインターミナルを開き、
/etc/ssh/sshd_config
を開くことから始めます。 nanoまたはお好みのテキストエディタを使用したSSH構成ファイル。必ずroot権限でこれを行ってください。$ sudo nano /etc/ssh/sshd_config
- このファイル内で、
#PermitRootLogin prohibit-password
のコメントを解除する必要があります 設定をyes
に変更します 。以下を参照して、行がどのように表示されるかを確認してください。FROM: #PermitRootLogin prohibit-password TO: PermitRootLogin yes
この仕事をする簡単な方法は、単に
sed
を使用することです。 以下に示すコマンド:$ sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
- 変更を有効にするには、SSHサービスを再起動する必要があります。
$ sudo systemctl restart ssh
- デフォルトでは、ルートのパスワードはUbuntu 22.04に設定されておらず、エラーメッセージ
Permission denied, please try again
rootユーザーとしてSSHログインを試みると表示されます。このため、rootのパスワードを設定する必要があります。プロンプトが表示されたら、現在のユーザーパスワードに続けて新しいrootパスワードを入力します。$ sudo passwd [sudo] password for linuxconfig: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
- Ubuntu22.04システムがポート22/sshでの着信トラフィックを許可している場合、rootとしてSSHログインする準備ができているはずです:
$ sudo ufw allow ssh
$ ssh root@ubuntu-server
まとめ
このチュートリアルでは、Ubuntu 22.04 JammyJellyfishLinuxでrootSSHログインを有効にする方法を学びました。これにより、所有者はrootアカウントに直接SSHで接続できるため、より便利になります。この構成にはセキュリティ上の懸念がわずかにありますが、rootアカウントに安全なパスワードがあり、システムにユーザーが1人しかいない限り、それほど問題にはなりません。