Trên Ubuntu 22.04, vì bạn đã có tài khoản được cấp quyền sudo và có thể chạy sudo -i, bạn có thể đặt lại mật khẩu root mà không cần biết mật khẩu root hiện tại.
Bước 1: Mở Terminal hoặc SSH vào máy chủ, chạy:
sudo -i
Sau khi chuyển sang quyền root, dấu nhắc lệnh thường có dạng:
root@server:~#
Bước 2: Đặt mật khẩu mới:
passwd root
Hệ thống sẽ yêu cầu nhập mật khẩu mới hai lần:
New password:
Retype new password:
passwd: password updated successfully
Lưu ý: Khi nhập mật khẩu, màn hình không hiển thị ký tự hoặc dấu *. Đây là hành vi bình thường của Linux.
Sau khi đặt mật khẩu, bạn có thể kiểm tra bằng cách thoát khỏi phiên root:
exit
Sau đó chạy:
su - root
Nhập mật khẩu root mới. Nếu chuyển được sang tài khoản root thì bạn đã thiết lập thành công.
Trên Ubuntu, tài khoản root thường bị khóa đăng nhập bằng mật khẩu theo mặc định. Lệnh passwd root sẽ đặt mật khẩu và thường mở khóa tài khoản để xác thực bằng mật khẩu.
Nếu bạn chỉ quản trị máy chủ qua SSH và sudo -i, tôi khuyên bạn nên tiếp tục sử dụng sudo thay vì cho phép đăng nhập root trực tiếp qua SSH để giảm rủi ro bảo mật.
Nếu bạn muốn kiểm tra trạng thái tài khoản root hiện tại, chạy:
passwd -S root
P: tài khoản có mật khẩu hợp lệ.
L: tài khoản đang bị khóa mật khẩu.
NP: tài khoản chưa có mật khẩu.
Lưu ý: Đặt mật khẩu root không đồng nghĩa với việc SSH cho phép đăng nhập trực tiếp bằng root. Việc đó còn phụ thuộc vào cấu hình SSH của máy chủ.
----------------------------------
Kiểm tra cấu hình SSH có cho phép root đăng nhập không
Chạy lệnh:
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication|kbdinteractiveauthentication'
Ví dụ, nếu kết quả là:
permitrootlogin prohibit-password
passwordauthentication yes
kbdinteractiveauthentication no
thì nguyên nhân đã rõ: prohibit-password không cho phép root đăng nhập bằng mật khẩu qua SSH.
Các giá trị PermitRootLogin thường có ý nghĩa như sau:
no: cấm root đăng nhập qua SSH.
prohibit-password: chỉ cho root đăng nhập bằng phương thức không dùng mật khẩu, chẳng hạn SSH key.
yes: cho phép root đăng nhập qua SSH, nếu các điều kiện xác thực khác cũng đáp ứng.
------------------------------
Bước 1. Mở file cấu hình SSH chính:
sudo nano /etc/ssh/sshd_config
Tìm dòng:
PermitRootLogin without-password
Sửa thành:
PermitRootLogin yes
Nếu dòng này không tồn tại, bạn có thể thêm vào file.
Bước 2. Kiểm tra các file cấu hình bổ sung, vì chúng có thể ảnh hưởng đến kết quả:
sudo grep -Rni 'PermitRootLogin' /etc/ssh/sshd_config.d/
Nếu có file chứa cấu hình khác, hãy kiểm tra và điều chỉnh để giá trị hiệu lực là yes.
Bước 3. Kiểm tra cú pháp cấu hình:
sudo sshd -t
Nếu không có lỗi, kiểm tra giá trị thực tế:
sudo sshd -T | grep permitrootlogin
Kết quả cần là:
permitrootlogin yes
Bước 4. Tải lại dịch vụ SSH:
sudo systemctl reload ssh
Bước 5. Mở một cửa sổ Terminal mới trên máy tính của bạn và thử:
ssh root@IP_MAY_CHU
Nhập mật khẩu root đã đặt trước đó.