Setting Up Passwordless SSH with Private Key
(Thiết Lập SSH Không Cần Password Với Private Key)
Hướng Dẫn Thiết Lập SSH Không Cần Mật Khẩu Trên CentOS Với Bash Script
Trong bài viết này, chúng ta sẽ hướng dẫn bạn cách thiết lập SSH không cần mật khẩu cho tài khoản root trên CentOS bằng một Bash script đơn giản. Việc này giúp bạn tiết kiệm thời gian khi đăng nhập SSH nhiều lần mà không cần nhập mật khẩu. Hãy cùng đi qua từng bước cụ thể dưới đây.
1. Giới thiệu về SSH Key và quá trình thiết lập
SSH key là một cặp khóa gồm khóa công khai và khóa riêng tư, được sử dụng để xác thực khi kết nối qua SSH. Quá trình thiết lập sẽ bao gồm việc tạo khóa SSH và sao chép nó vào máy chủ để có thể đăng nhập mà không cần mật khẩu.
2. Script Bash thiết lập SSH không cần mật khẩu
Dưới đây là Bash script để bạn có thể nhanh chóng thiết lập hệ thống của mình:
#!/bin/bash
# Tạo cặp khóa SSH, bỏ qua yêu cầu nhập thông tin
echo -ne '\n' | ssh-keygen
# Sao chép khóa công khai SSH đến tài khoản root trên máy cục bộ
ssh-copy-id root@$(hostname)
# Thêm khóa công khai vào file authorized_keys trên máy cục bộ
cat ~/.ssh/id_rsa.pub | ssh root@$(hostname) "
mkdir -p ~/.ssh && \
touch ~/.ssh/authorized_keys && \
chmod -R go= ~/.ssh && \
cat >> ~/.ssh/authorized_keys"
# Hiển thị khóa công khai
cat ~/.ssh/id_rsa.pub
# Đảm bảo thư mục .ssh tồn tại trên máy
mkdir -p ~/.ssh
# Thêm chuỗi khóa công khai cụ thể vào authorized_keys
echo public_key_string >> ~/.ssh/authorized_keys
# Thiết lập quyền truy cập bảo mật cho thư mục .ssh và file bên trong
chmod -R go= ~/.ssh
# Đặt quyền sở hữu thư mục .ssh và các file bên trong cho root
chown -R root:root ~/.ssh
3. Giải thích từng bước của script
Tạo khóa SSH:
Lệnhecho -ne '\n' | ssh-keygen
giúp tạo cặp khóa SSH và bỏ qua các bước yêu cầu nhập dữ liệu.Sao chép khóa đến máy cục bộ:
Sử dụngssh-copy-id root@$(hostname)
để sao chép khóa SSH đến tài khoản root của chính hệ thống hiện tại.Thêm khóa vào file authorized_keys:
Dòng lệnh saucat ~/.ssh/id_rsa.pub
giúp sao chép khóa công khai vào fileauthorized_keys
và đảm bảo thư mục.ssh
có quyền truy cập đúng.Kiểm tra khóa công khai:
Lệnhcat ~/.ssh/id_rsa.pub
hiển thị khóa công khai của bạn.Đảm bảo thư mục
.ssh
tồn tại:
Nếu thư mục.ssh
chưa tồn tại, script sẽ tự động tạo thư mục này bằng lệnhmkdir -p ~/.ssh
.Thêm khóa thủ công:
Sử dụngecho public_key_string >> ~/.ssh/authorized_keys
để thêm một chuỗi khóa công khai cụ thể vào fileauthorized_keys
.Thiết lập quyền truy cập:
Lệnhchmod -R go= ~/.ssh
đảm bảo chỉ có người sở hữu (root) mới có quyền truy cập vào thư mục và file bên trong.Đặt quyền sở hữu:
Cuối cùng, lệnhchown -R root:root ~/.ssh
sẽ đảm bảo rằng root là chủ sở hữu của thư mục.ssh
.
4. Kết luận:
Bằng cách thực hiện các bước trên, bạn đã hoàn tất quá trình thiết lập SSH không cần mật khẩu trên CentOS. Điều này giúp bạn quản lý hệ thống hiệu quả và bảo mật hơn. Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại để lại bình luận bên dưới!
Good, Thank you