Lỗi SSH và Ceph Orchestrator khi thêm Node mới

🧭 Tổng quan

Trong quá trình triển khai hoặc vận hành Ceph cluster với cephadm, thao tác thêm node mới (ceph orch host add) đôi khi gặp lỗi bất ngờ, đặc biệt liên quan đến việc SSH không hoạt động đúng, hoặc hệ thống từ chối host key.

Bài viết này chia sẻ một trường hợp thực tế khi thêm node OSD mới vào Ceph Orchestrator bị lỗi Error EINVAL và SSH yêu cầu xác thực dù đã copy key. Bài viết sẽ giúp bạn:

  • Xử lý lỗi SSH: Host key verification failed
  • Xử lý lỗi Ceph Orchestrator không nhận host
  • Khôi phục đăng nhập SSH không mật khẩu giữa các node
  • Cách làm việc với ssh-keygen, ssh-copy-id, authorized_keys

📌 Mô tả sự cố

❗ Lỗi khi thêm host

ceph orch host add CEPH-LAB-OSD-006 172.16.21.6 osd _no_schedule

Kết quả:

Error EINVAL: TypeError: __init__() missing 2 required positional arguments: 'hostname' and 'addr'

❗ SSH không đăng nhập được

Dù đã copy key thủ công, nhưng khi SSH từ MON sang OSD:

ssh -i /home/cephadmin/.ssh/id_rsa cephadmin@172.16.21.6

Lỗi:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Host key verification failed.

🔍 Phân tích nguyên nhân

Vấn đềNguyên nhân
SSH yêu cầu mật khẩuThiếu file id_rsa.pub, hoặc quyền file sai
SSH “REMOTE HOST IDENTIFICATION HAS CHANGED”Máy từ IP cũ gán host key mới, hoặc node bị reinstall
Ceph Orchestrator EINVALKhông kết nối SSH được nên không thu thập hostname/IP

✅ Giải pháp từng bước

🔹 Bước 1: Xử lý lỗi known_hosts

Khi host key thay đổi (do cài lại OS hoặc thay node IP), bạn cần gỡ bản ghi cũ:

ssh-keygen -f "/root/.ssh/known_hosts" -R "172.16.21.6"

Sau đó, thử lại SSH:

ssh -i /home/cephadmin/.ssh/id_rsa cephadmin@172.16.21.6

Chấp nhận fingerprint mới khi được hỏi:

Are you sure you want to continue connecting (yes/no)? yes

🔹 Bước 2: Tạo lại file id_rsa.pub nếu bị thiếu

Nếu chỉ có private key id_rsa, cần sinh lại public key:

ssh-keygen -y -f /home/cephadmin/.ssh/id_rsa > /home/cephadmin/.ssh/id_rsa.pub

🔹 Bước 3: Copy key sang node đích

ssh-copy-id -i /home/cephadmin/.ssh/id_rsa.pub cephadmin@172.16.21.6

Nếu bạn chắc authorized_keys đã chứa đúng key, có thể bỏ qua bước này.

🔹 Bước 4: Sửa quyền thư mục và file .ssh

Trên máy đích (172.16.21.6):

chmod 700 /home/cephadmin/.ssh
chmod 600 /home/cephadmin/.ssh/authorized_keys
chown -R cephadmin:cephadmin /home/cephadmin/.ssh

🔹 Bước 5: Kiểm tra cấu hình sshd

Mở file /etc/ssh/sshd_config, kiểm tra hoặc thêm:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Sau đó restart SSH:

sudo systemctl restart sshd

🔹 Bước 6: Kiểm tra SSH, cần đảm bảo khi ssh sang cephadmin@172.16.21.6 không cần authen nữa là thành công.

ssh -i /home/cephadmin/.ssh/id_rsa cephadmin@172.16.21.6

Nếu không bị hỏi password nữa ⇒ thành công ✅

🔹 Bước 7: Thêm lại host vào Ceph

ceph orch host add CEPH-LAB-OSD-006 172.16.21.6 osd _no_schedule

💡 Sơ đồ kết nối SSH bằng khóa (ASCII)

MON Node (Cephadm)             OSD Node
┌──────────────┐               ┌──────────────┐
│ id_rsa (key) ├───┐     ┌───► │ authorized_keys │
└──────────────┘   │     │     └──────────────┘
┌──────────────┐   │     │
│ id_rsa.pub   ├───┘     │
└──────────────┘         ▼
                Đăng nhập không cần password

✅ Ưu điểm của giải pháp

Ưu điểmMô tả
Triệt đểXử lý cả SSH lẫn Ceph Orchestrator
Không mất dữ liệuKhông phải xóa hay reset Ceph node
Có thể tự động hóaCó thể viết script triển khai key hàng loạt

❌ Nhược điểm

Nhược điểmGhi chú
Phụ thuộc vào quyền hệ thốngPhải root hoặc sudo để sửa quyền .ssh
Không hỗ trợ nếu node bị cô lập mạngPhải đảm bảo kết nối SSH từ MON tới OSD được mở

📌 So sánh – ssh-copy-id vs. copy thủ công

CáchƯu điểmNhược điểm
ssh-copy-idNhanh, tự động kiểm tra fileCần id_rsa.pub
Copy thủ công authorized_keysChủ độngDễ sai quyền file, sai key

🧠 Lời khuyên

  • Không nên copy file authorized_keys thành id_rsa.pub trừ khi bạn biết chắc nội dung khớp với private key.
  • Luôn chạy lệnh ssh từ user đúng, không dùng root nếu không cần thiết.
  • Nếu vận hành nhiều node, nên viết script ssh-copy-id theo danh sách IP hoặc hostname.

✅ Kết luận

Việc SSH không đăng nhập được bằng key hoặc lỗi khi ceph orch host add là tình huống khá phổ biến trong môi trường hạ tầng Ceph. Qua ví dụ thực tế này, bạn có thể áp dụng quy trình xử lý từ gỡ known_hosts, tạo lại id_rsa.pub, kiểm tra quyền file .ssh, đến xác nhận SSH key hoạt động trước khi thao tác với Ceph Orchestrator.

Hãy đầu tư kiểm soát SSH chuẩn hóa từ đầu – đó là nền tảng vững chắc cho tự động hóa và vận hành hạ tầng.

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email