Hướng Dẫn Cấu Hình SSH Key Trên CentOS 7 - 123HOST
Có thể bạn quan tâm
Giới thiệu
SSH (Secure Shell) là một giao thức giúp người dùng quản lý và giao tiếp với server. SSH Key được sinh ra để thay thế mật khẩu thông thường nhằm đảm bảo hơn về tính bảo mật. Nó bao gồm 2 key (Public key và Private key) được mã hoá.
Private key phải được đảm bảo giữ bí mật tuyệt đối. Bất kỳ người nào có key này đều có thể truy cập vào server. Ngược lại Public key được phép công khai nhằm mã hoá thông tin mà chỉ có thể giải mã bởi Private key.
Bài viết này sẽ hướng dẫn bạn cấu hình SSH Key trên CentOS 7.
Yêu cầu
- Hệ thống chạy CentOS 7
Bước 1: Tạo SSH Key
Bước đầu tiên để cấu hình Xác thực bằng SSH Key bạn cần tạo một cặp SSH Key trên máy tính cục bộ của mình. Ở đây mình sẽ sử dụng ssh-keygen (có sẵn trong bộ OpenSSH suite). Trên terminal bạn nhập lệnh sau:
bash (non-root)ssh-keygen _Các tuỳ chọn:
- -b "bits" : chỉ định số lượng bit trong khóa
- -t “Type”: chỉ định loại khóa sẽ được tạo. Các giá trị thường được sử dụng là: -rsa cho khóa RSA, - dsa cho khóa DSA
- -q: ssh-keygen chế độ yên tĩnh.
Bạn sẽ cần nhập nơi lưu trữ key, hãy đảm bảo rằng chỗ đó đủ bảo mật. Private key Sẽ được gọi là id_rsa còn Public key là id_rsa.pub, cả 2 được lưu vào thư mực ~/.ssh theo mặc định
Kết quảGenerating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):Sau đó công cụ này sẽ hỏi bạn nhập mội pass phrase. Bạn có thể để trống nêu muốn nhưng mình khuyên bạn nên điền vào vì nó như lớp bảo mật thứ 2 vậy.
Kết quảCreated directory '/home/username/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:Lưu ý: Passphrase không có cách nào để phục hồi nên hãy lưu nó ở một nơi an toàn và dễ nhớ.
Vậy là hoàn thành việc tạo một cặp key SSH.
Kết quảYour identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:2d7mbkG2eQPrIUUGQENbsufiBdKrIsjggZ7q1a/BXkA ubuntu@ubuntu The key's randomart image is: +---[RSA 3072]----+ | o*.o. | | . * o | | E. = .o | |. . . B = | |o. . S ++ = | |=.o o .o +..* o | |.=...+... .oo+ . | |. ....+ oo | |o. o.. oo | +----[SHA256]-----+Bước 2: Copy SSH Public Key cho Server của bạn
Có nhiều cách để tải Public Key lên server SSH, mỗi cách đều phụ thuộc vào công cụ mà bạn đang có. Các cách dưới đây đề cho về một kết quả như nhau. Mình sẽ trình bày cách dễ nhất trước sau đó cách cách sau sẽ yêu cầu thêm các tác vụ thủ công thêm. Bạn chỉ nên làm theo nếu như các cách trước không hoạt động.
1. Sử dụng ssh-copy-id
Cách đơn giản nhất chính là sử dụng công cụ ssh-copy-id được tích hợp và bộ công cụ OpenSSH. Để sử dụng, bạn cần chỉ ra server mình muốn copy và tài khoản, mật khẩu SSH. Ở đây, mình có:
- username : username
- Remote host: remote_host
- Thư mục lưu key: $HOME/.ssh/id_rsa.pub
Bạn có thể thêm tuỳ chọn -p "port" để chỉ định cổng port trong trường hợp SSH Server không chạy ở port 22.
Nếu đây là lần đầu bạn truy cập và Remote Host bạn sẽ có thông báo sau:
Kết quảThe authenticity of host '123.0.223.1 (123.0.223.1)' can't be established. ECDSA key fingerprint is bf:fd:d4:f9:22:fe:73:84:e1:65:00:bd:d6:6d:6d:fe. Are you sure you want to continue connecting (yes/no)? yesBạn chỉ cần nhập vào yes sau đó là phím <Enter> là được. Tiếp theo công cụ sẽ quét tìm id_rsa.pub mà ta đã tạo, khi tìm kiếm thành công nó sẽ yêu cầu bạn nhập mật khẩu của tài khoản SSH
Kết quả/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:Vì lý do bảo mật nên khi nhập, mật khẩu sẽ bị ẩn đi. Sau khi hoàn thành bấm <Enter> và công cụ sẽ tự động kết nối tới tài khoản và copy Key public ~/.ssh/id_rsa.pub vào file trên server ~/.ssh/username/authorized_keys/. Bạn sẽ nhận được thông báo thành công như sau:
Kết quảNumber of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.2. Sử dụng SSH
Nếu như bạn không thể sử dụng ssh-copy-id thì ta có thể tải key bằng cách SSH thông thường. Chúng ta sử dụng kí hiệu >> để nối vào nội dung thay vì ghi đề lên toàn bộ. Điều này cho phép thêm key và không xoá đi các key đang có.
Kết quảcat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Bạn cần phân quyền cho thư mục trên như sau :
.ssh: 700 (drwx------)
authorized_keys: 600 (-rw-r--r--)
Nếu đây là lần đầu bạn truy cập và Remote Host bạn sẽ có thông báo sau:
Kết quảThe authenticity of host '123.0.223.1 (123.0.223.1)' can't be established. ECDSA key fingerprint is bf:fd:d4:f9:22:fe:73:84:e1:65:00:bd:d6:6d:6d:fe. Are you sure you want to continue connecting (yes/no)? yesBạn chỉ cần nhập vào yes sau đó là phím <ENTER> là được. Tiếp theo công cụ sẽ quét tìm id_rsa.pub mà ta đã tạo, khi tìm kiếm thành công nó sẽ yêu cầu bạn nhập mật khẩu của tài khoản SSH
Kết quả/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:Vì lý do bảo mật nên khi nhập, mật khẩu sẽ bị ẩn đi. Sau khi hoàn thành bấm <Enter> và công cụ sẽ tự động kết nối tới tài khoản và copy key public ~/.ssh/id_rsa.pub vào file trên server ~/.ssh/username/authorized_keys/.
3. Copy thủ công
Nếu như cả 2 cách trên đều không khả dụng, thì cách thủ công này là lựa chọn tuyệt vời. Tuy vậy nó sẽ khá khó khăn cho người mới và bạn sẽ phải làm mọi thứ.
Bạn cần mở xem nội dung của Public key tại id_rsa.pub.
bash (non-root)cat ~/.ssh/id_rsa.pub _ Kết quảssh-rsa AAAAKil3NzaC1yc2Egjdp3AQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZdsfshH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxgjdp3S+zVk5dsfsh85gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7JiOKil7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSggjdp3GwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAIdsfsho9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7JiOKiljdp3O4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSdsfsh7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1JiOKilqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWdsfsh4G2fJLRcGUr9q8/lERo9oxRm5JiOKilTCmj6kmiFqv+Ow9gI0x8GvaQ== username@remote_hostTiếp theo, bạn cần truy cập vào server và tạo thư mực ~/.ssh nếu chưa có bằng cách:
bash (non-root)mkdir -p ~/.ssh _Bây giờ, bạn sẽ cần copy toàn bộ nội dung của id_rsa.pub Vào file authorized_keys.
bash (non-root)echo public_key >> ~/.ssh/authorized_keys _Bạn cần phân quyền cho thư mục trên như sau :
.ssh: 700 (drwx------)
authorized_keys: 600 (-rw-r--r--)
Bước 3: Xác thực bằng SSH Key
Bạn đã hoàn thành việc thêm SSH Key và có thể đăng nhập vào server mà không cần mật khẩu. Để đăng nhập bạn nhập lệnh sau:
bash (non-root)ssh username@remote_host _Nếu bạn sử dụng khoá khác thì có thể sử dụng tuỳ chọn -i đường_dẫn_tới_file để chỉ định file khoá để xác thực
Nếu đây là lần đầu bạn truy cập và Remote Host bạn sẽ có thông báo sau:
Kết quảThe authenticity of host '123.0.223.1 (123.0.223.1)' can't be established. ECDSA key fingerprint is bf:fd:d4:f9:22:fe:73:84:e1:65:00:bd:d6:6d:6d:fe. Are you sure you want to continue connecting (yes/no)? yesBạn chỉ cần nhập vào yes sau đó là phím <Enter> là được. Sau đó bạn sẽ tự động đăng nhập vào server (Nếu bạn có thêm passpharse thì hệ thống sẽ yêu cầu bạn nhập vào).
Bước 4: Tắt xác thực bằng mật khẩu trên Server
Đăng nhập bằng SSH key không yêu cầu mật khẩu của username vì thế bạn có thể tắt chức năng này đi bằng cách đăng nhập vào server và mở file cấu hình SSH
bash (non-root)sudo nano /etc/ssh/sshd_config _Tìm tới mục PasswordAuthentication và để giá trị của nó thành no.
Thông tin: Mục này có thể đang ở chế độ `comment` với kí hiệu # ở trước. Bạn chỉ cần xoá kí hiệu đi để bỏ chế độ comment.
/etc/ssh/sshd_config/etc/ssh/sshd_configLưu lại và khởi động lại service:
bash (non-root)sudo systemctl restart ssh _Lưu ý: Bạn cần giữ kết nối SSH hiện tại và mở thêm 1 kết nối SSH dự phòng trước khi restart service ssh tránh trường hợp cầu hình bị lỗi và không thể đăng nhập và server.
Kết luận
Bây giờ bạn đã hoàn thành xác thực bằng SSH Key trên server của mình. Việc sử dụng SSH thay thế cho mật khẩu phổ thông ngày nay càng được ưa chuộng vì tính bảo mật của mình, mong qua bài hôm nay bạn đã hiểu hơn về SSH. Tạm biệt và hẹn gặp lại !
Từ khóa » Cài đặt Ssh Trên Centos 7
-
Cài đặt SSH Lên Server Linux - TEL4VN
-
Cài đặt Và Kích Hoạt Máy Chủ Ssh Trên Centos 7 - Howto88
-
Cài đặt Dịch Vụ SSH Trên Server Linux Và Windows
-
Hướng Dẫn Install SSH Centos7 Và OS Linux Khác - Knowledge Base
-
Hướng Dẫn Sử Dụng SSH Kết Nối CentoS - BKNS.VN
-
Cài đặt SSH Trên CentOS 7 - IK4 ▷➡️
-
Cài đặt Và Cấu Hình SSH Server Trên CentOS 7.0
-
Hướng Dẫn đổi Port SSH Mặc định Trên CentOS 7 | Cloud VPS
-
Cách Thiết Lập Khóa SSH Trên CentOS 7
-
Cách Thiết Lập Và Sử Dụng SSH Trong Linux
-
Cài Đặt Và Cấu Hình SSH Trên Windows – Centos 7 - CycloneIT
-
Hướng Dẫn Nâng Cấp, Cài đặt OpenSSH 7.6 Trên CentOS 7
-
Cài đặt SSH Trên CentOS(Fedora,Redhat) - CUSTOMER SERVICE
-
Cấu Hình SSH Trên Centos 6.5 - Huy Hùng - KMA