はじめに
前回、構築したUbuntuサーバーにrootユーザーでSSH接続を試みたところ、直接ログインができないことが判明しました。
Ansibleのクライアントサーバーとして使用する予定でしたが、この問題を解決しないと後続の作業に進めないため、対応していきます。
本記事では、その原因特定から解決方法までをまとめてご紹介します。
前提知識
本記事では、主にrootユーザーでSSH接続を設定する方法について解説します。
VirtualBoxやUbuntuに関しての基礎知識については、以下の記事をご参考ください。
VirtualBox関連の記事
SSH関連の記事
Ubuntu関連の記事
困っていたこと
自宅のVirtualBox上にサーバーを構築しましたが、SSHやTeraTermを使用してrootユーザーで直接ログインしようとしたところ、以下のエラーが表示されました。
[root@HONDA-TEST ~]# ssh root@192.168.1.7
root@192.168.1.7's password:
Permission denied, please try again.
root@192.168.1.7's password:
補足として、一般ユーザーでSSH接続した後、rootユーザーに切り替えることは可能な状態です。
honda@honda-ubuntu:~$ sudo su -
[sudo] password for honda:
root@honda-ubuntu:~#
原因特定してみた
このエラーは、以下のいずれかの原因が考えられます。
- 入力したパスワードが正しくない。
- リモートサーバー(
192.168.1.7
)のSSH設定が適切に構成されていない。
まず、リモートサーバーに直接アクセスし、rootユーザーのパスワードをリセットしてみました。
passwd
新しいパスワードを設定しましたが、それでも問題は解決しませんでした。
そこで、SSH設定ファイルが問題の原因であると切り分けました。
リモートサーバーのSSH設定ファイル(/etc/ssh/sshd_config
)を確認し、以下の設定をチェックしました。
PermitRootLogin
の設定
root@honda-ubuntu:~# cat /etc/ssh/sshd_config | grep PermitRootLogin
#PermitRootLogin prohibit-password
# the setting of "PermitRootLogin prohibit-password".
問題は、#PermitRootLogin
がコメントアウトされており、適切に有効化されていないことでした。
結論として、/etc/ssh/sshd_config
の中身を一部修正することで問題は解決します!
実際に解決してみた
設定ファイルを編集する際は、事前にバックアップを取ることを強くお勧めします。
1.SSH設定の確認
リモートサーバーのSSH設定ファイル /etc/ssh/sshd_config
を確認し、以下の設定を確認・変更します。
PermitRootLogin
の設定
PermitRootLogin yes
この項目が no
に設定されている場合、root ユーザーでのSSHログインが禁止されています。yes
に変更してください。
2. SSHサービスの再起動
設定を編集した後、以下のコマンドを実行してSSHサービスを再起動します。
sudo systemctl restart ssh
再度、rootユーザーでSSH接続を試みる
以下のコマンドを実行して、rootユーザーでSSH接続を試みます。
ssh root@192.168.1.7
今回はMacBookのターミナルからSSHコマンドを使用し、rootユーザーで直接ログインすることができました。
➜ ~ git:(main) ✗ ssh root@192.168.1.7
Warning: Permanently added '192.168.1.7' (ED25519) to the list of known hosts.
root@192.168.1.7's password:
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)
・・・(省略)
Last login: Tue Dec 31 07:33:32 2024 from 192.168.1.9
root@honda-ubuntu:~#
正しいパスワードを入力して接続が成功しました!これで問題解決です!
まとめ
今回は、構築したサーバーに対してrootユーザーで直接SSH接続ができない問題について、原因の特定から解決までを行いました。
今日はAnsibleの学習を進める予定でしたが、それ以前にサーバー環境の構築に時間を費やしてしまいました(笑)。
とはいえ、一つ一つの技術に丁寧に向き合うことで、自分自身のスキルアップにつながると信じています...。
この記事が、同じ問題に直面した方の参考になれば幸いです!
参考記事