Hướng dẫn cài đặt SSH key pair trên ubuntu 20.04 server

30/12/2020

SSH hay còn được biết đến là secure shell. Là một phương thức được sử dụng để mã hóa dữ liệu khi bạn kết nối từ máy bạn đến server. Phần lớn thời gian các bạn thực hiện thao tác với server bằng cách remote . Vậy nên việc này là rất cần thiết. Ở bài này mình sẽ hướng dẫn mọi người cách làm thế nào để có thể sử dụng ssh-key ubuntu 20.04

Trong bài này mình sẽ hướng dẫn các bạn cách làm sao có thể sử dụng được ssh trong ubuntu 20.04. Nhưng mà bạn nào còn chưa biết cách làm sao để cài đặt được ip static cho nó thì hãy tham khảo bài hướng dẫn cài đặt ip static trên ubuntu 20.04

1. Mô hình

IP Planning

HOSTNAME IP DISK RAM CPU
client 10.10.34.131 10G 1G 1
ubuntu 10.10.34.132 30G 2G 2

Kịch bản :

  • Tạo cặp key trên client
  • Copy public key lên server và SSH tới server để kiểm tra
  • Disable SSH password và SSH root
  • Kiểm tra lại việc ssh

2. Thực hiện trên client

2.1 Tạo ra cặp key

Bước đầu tiên ta thực hiện là phải tạo ra một cặp khóa trên client thường là máy tính của bạn được sử dụng để ssh tới server

ssh-keygen

Sau khi bạn nhập lệnh thì sẽ thấy hai dòng đầu được hiện thị.

Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):

Bước này là để xác định thư mục lưu trữ. Nếu bạn nhấn enter thì mặc định nó sẽ lưu trữ như thư mục trong ngoặc. Sau khi xong thì nó sẽ hiển thị 2 dòng tiếp sau

Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
  • Dòng đầu tiên là để thông báo đã tạo xong thư mục bên trên.
  • Dòng thứ 2 được hỏi là có đặt mật khẩu cho key ssh này không. Mật khẩu này chỉ xác thực trên local không được gửi đi trên mạng khi mà ssh tới server.
  • Và dòng thứ 3 là xác nhận lại mật khẩu. Sau khi xác nhận xong là hoàn thành bước tạo key trên client và sẽ có output như sau
Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:jyB9C2UjyDePDlCwnXbHagjx7ocof29CfcvhPPNSrIM root@client The key's randomart image is: +---[RSA 2048]----+ |  o..            | |   B o .         | |  + B = *        | |   = = X .       | |    =.B S.       | |   o.*.+o+o      | |. ..o o*o=.      | | o  o.E @        | |  .. +.  *.      | +----[SHA256]-----+

2.2 Copy key lên ubuntu 20.04 server

Sau khi đã tạo được cặp key pair trên client thì việc tiếp theo cần làm đó chính là copy key public lên trên server để có thể sử dụng nó.

Vấn đề copy public key lên server thì ta có 2 phương pháp có thể thực hiện nó.
1 : Là ta sử dụng thủ công. Ta sẽ đọc file public key rồi đăng nhập và server tạo ra file để lưu trữ nội dung ta copy vào
2: Là ta sẻ dụng lệnh ssh-copy-id và ở đây tôi sử dụng phương án thứ 2 này

Cú pháp của lệnh này là

ssh-copy-id username@remote_host

Áp dụng vào trong bài của tôi thì tôi sẽ có lệnh như sau

ssh-copy-id thuctap@10.10.34.132

Bạn sẽ nhận được output như sau

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '10.10.34.132 (10.10.34.132)' can't be established. ECDSA key fingerprint is SHA256:sX0/yJcS8RURkYnc1xgQbVyoOrHxxOnCX1vCPC+Sp3g. ECDSA key fingerprint is MD5:cf:bd:ea:12:72:f9:ca:0c:b5:c3:de:8a:76:4e:47:45. Are you sure you want to continue connecting (yes/no)? yes

Hỏi xem bạn có thật sự muốn tiếp tục kết nối tới server không. chắc chắn rồi vì chúng ta đang làm việc đó nên sẽ chọn yes

/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 thuctap@10.10.34.132's password:

Tiếp theo bạn cần nhập password để có thể copy được nó vào server này

Number of key(s) added: 1  Now try logging into the machine, with:   "ssh 'thuctap@10.10.34.132'" and check to make sure that only the key(s) you wanted were added. 

Và sau khi nhập password xong. Bước này hoàn thành và bạn nhaajnd dược thông báo như trên .

2.3 Kiểm tra lại việc ssh

Ta sẽ thực hiện lệnh ssh để có thể kiểm tra xem việc ssh bằng key có được thực hiện hay không nhé

ssh thuctap@10.10.34.132

Sau khi thực hiện lệnh ssh thì ta nhận được output như bên dưới. Và đương nhiên ta sẽ không còn phải nhập password vẫn có thể remote được server.

[root@client ~]# ssh thuctap@10.10.34.132 Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64)   * Documentation:  https://help.ubuntu.com  * Management:     https://landscape.canonical.com  * Support:        https://ubuntu.com/advantage    System information as of Sun 26 Apr 2020 03:52:11 PM UTC    System load:  0.0                Processes:             107   Usage of /:   13.9% of 29.40GB   Users logged in:       1   Memory usage: 10%                IPv4 address for ens3: 10.10.34.132   Swap usage:   0%   * Ubuntu 20.04 LTS is out, raising the bar on performance, security,    and optimisation for Intel, AMD, Nvidia, ARM64 and Z15 as well as    AWS, Azure and Google Cloud.       https://ubuntu.com/blog/ubuntu-20-04-lts-arrives   3 updates can be installed immediately. 0 of these updates are security updates. To see these additional updates run: apt list --upgradable  Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings   Last login: Sun Apr 26 15:13:56 2020 from 10.10.34.1 thuctap@ubuntu:~$ 

3. Disable ssh password và user root

Sau khi có thể sử dụng ssh bằng key để đăng nhập và điều khiển remote được server bằng máy tính của chúng ta thì đương nhiên việc ssh bằng password là điều không còn cần thiết nữa.

Công việc tiếp theo của ta sẽ là disable chức năng có thể ssh bằng password của server. Và user root là một user rất nhạy cảm nên ta sẽ disable luôn chức năng ssh từ xa của nó . Và các bước sau ta thực hiện ở trên ubuntu 20.04 server nhé

sudo vi /etc/ssh/sshd_config

Sau khi đăng nhập xong vào file thì ta tìm đến hai dòng là

#PasswordAuthentication yes  #PermitRootLogin prohibit-password

và ta sẽ sửa 2 dòng đó như sau. Sau khi sử xong thì ta lưu lại và thử ssh lại một lần nữa

PasswordAuthentication no PermitRootLogin no

Sau đó ta khởi động lại dịch vụ ssh

sudo systemctl restart sshd

Và rồi ta thử lại ssh bằng password ta sẽ nhận được output như sau

ssh thuctap@10.10.34.132 thuctap@10.10.34.132: Permission denied (publickey)

Vậy là đã hoàn thành được vấn đề làm sao để ta có thể bảo vệ được password khi mà ta ssh tới remote server. Chúc các bạn thành công trong việc cài đặt nhé!

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Hướng dẫn sử dụng Wireshark cơ bản

Wireshark là một chương trình phần mềm phân tích giao thức mạng nguồn mở do Gerald Combs khởi xướng...
30/12/2020

[Ossec – Part 2] Cài đặt và triển khai mô hình Ossec Server-Agent

Ở phần trước, chúng ta đã cùng nhau tìm hiểu sơ qua về Ossec – một HIDS mạnh mẽ. Phần...
30/12/2020

Hướng dẫn cài đặt MariaDB Server phiên bản 10.4.7 trên CentOS 7

MariaDB là một nhánh của MySQL( một trong những CSDL phổ biến trên thế giới ), là máy...
30/12/2020