ssh-copy-id là gì?
ssh-copy-id là một công cụ trên Linux giúp bạn copy SSH public key từ máy local lên server, từ đó cho phép đăng nhập SSH mà không cần nhập mật khẩu.
Cách này sử dụng cơ chế SSH Key Authentication, an toàn hơn rất nhiều so với password truyền thống.
Lợi ích khi dùng ssh-copy-id
-
Không cần nhập password khi SSH
-
Tăng bảo mật, tránh brute-force attack
-
Tiện lợi khi quản lý nhiều server
-
Dùng được cho automation (CI/CD, script)
Bước 1: Tạo SSH Key
Nếu bạn chưa có key, chạy lệnh:
ssh-keygen -t rsa -b 4096
Nhấn Enter để dùng mặc định.
Sau khi tạo xong:
-
Private key: ~/.ssh/id_rsa
-
Public key: ~/.ssh/id_rsa.pub
Bước 2: Sử dụng ssh-copy-id
Cú pháp cơ bản:
Ví dụ:
Hệ thống sẽ:
-
SSH vào server
-
Copy public key vào file:
Bước 3: Đăng nhập không cần mật khẩu
Nếu thành công, bạn sẽ không cần nhập password nữa.
Các trường hợp nâng cao
Dùng port SSH khác
Chỉ định file key
Fix lỗi ssh-copy-id thường gặp
Lỗi: No such file or directory
failed to open ID file
Nguyên nhân: chưa có SSH key
✔️ Cách fix:
Lỗi: Permission denied
Fix trên server:
chmod 600 ~/.ssh/authorized_keys
Không login được bằng key
Kiểm tra file config SSH:
Đảm bảo có:
AuthorizedKeysFile .ssh/authorized_keys
Restart SSH:
Cách làm thủ công (không dùng ssh-copy-id)
Nếu server không có lệnh này:
Best Practice bảo mật SSH
Sau khi setup xong, nên tắt login bằng password:
Sửa:
Restart:
Giúp tránh bị scan và brute-force SSH.
Kết luận
ssh-copy-id là công cụ cực kỳ hữu ích giúp bạn:
-
Đăng nhập SSH nhanh hơn
-
Bảo mật hơn
-
Quản lý server chuyên nghiệp hơn
Nếu bạn đang quản trị VPS hoặc hệ thống Linux, đây là kỹ năng bắt buộc nên biết.
Chúc các bạn thành công.