Quay lại

Cách tạo ssh-keygen trên môi trường linux Chuyên mục Devops    2023-05-10    203 Lượt xem    86 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Cách tạo ssh-keygen trên môi trường linux

Hello xin chào mọi người hôm này mình sẽ hướng dẫn các bạn làm sao để tạo 1 ssh-keygen trên môi trường linux nhé , trước tiên vào bài thì các bạn nên hiểu ssh-key là gì trước nhé !

1.ssh-keygen là gì?

Ssh-keygen là công cụ tạo cặp khóa xác thực mới cho SSH. Các cặp khóa như vậy được sử dụng để tự động đăng nhập, đăng nhập một lần và để xác thực máy chủ.

2.Khóa SSH và Public Key Authentication

Giao thức SSH sử dụng mật mã khóa công khai để xác thực máy chủ và người dùng. Các khóa xác thực, được gọi là khóa SSH, được tạo bằng chương trình keygen.

SSH đã giới thiệu xác thực khóa công khai như một giải pháp thay thế an toàn hơn cho xác thực .rhosts cũ hơn. Nó cải thiện tính bảo mật bằng cách tránh yêu cầu lưu trữ mật khẩu trong tệp và loại bỏ khả năng máy chủ bị xâm nhập đánh cắp mật khẩu của người dùng.

Tuy nhiên, khóa SSH là thông tin đăng nhập xác thực giống như mật khẩu. Vì vậy, chúng phải được quản lý tương tự như tên người dùng và mật khẩu. 

3.Tạo cặp khóa SSH để xác thực người dùng

Để thực hiện được ví dụ này thì các bạn tạo ra 2 servers nha , server B sẽ ssh sang server A thông qua ssh-key nha

Server A:

Chuyển qua tài khoản root để tạo mới 1 user

sudo su -

Sau đó dùng lệnh sau để tạo mới 1 user, mình lấy ví dụ user của mình là www-user

useradd www-user

Sau khi tạo xong thì các bạn switch sang user vừa tạo nha

su - www-user

Sau đó thì dùng lệnh sau để genarate ra ssh-key cho user này

ssh-keygen -t rsa

Sau khi chạy lệnh này thì 1 list cmd sẽ hiện ra các bạn chỉ việc ấn enter , không nhập gì cả nhé

Enter file in which to save the key (/home/www-user/.ssh/id_rsa): 
Created directory '/home/www-user/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/www-user/.ssh/id_rsa.
Your public key has been saved in /home/www-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4Lxy0lnLPsC1g5fCj+unPrn1b7KY3XVEEYLCECGmUr4 www-user@ip-172-31-27-42.ap-southeast-1.compute.internal
The key's randomart image is:
+---[RSA 2048]----+
|   . o +=   .. o.|
|  o o .  o .  . .|
| . o  .   .     .|
|  . .o ..      . |
|   E oooSo      .|
|     .*==.     . |
|    o =B+.    . .|
|     ++o+=.... . |
|     o**+.+=o    |
+----[SHA256]-----+

Sau khi hoàn thành bước này thì các bạn thấy public key của chúng ta đã được lưu ở thư mục /home/www-user/.ssh/

cd /home/www-user/.ssh/

Sau khi vào thư mục trên bạn sẽ thấy 2 file 1 là private key (id_rsa)public key (id_rsa.pub)

Tiếp theo là các bạn đổi tên public key thành Authorized_keys bằng lệnh sau:

mv id_rsa.pub authozized_keys

Sau đó thì change permission cho file này .

chmod 700 /home/www-user/.ssh
chmod 600 authozized_keys

Vậy là xong cho server A rồi , tiếp theo mình sẽ sang server B nhé .

Server B

Ở server B này chúng ta sẽ phải lấy private key từ bên server A đẩy về server B và sau đó thì chúng ta remote thử , trước hết các bạn về thư mục gôc trước nhé ,

sudo su -
cd /home

Ở đây các bạn có thể tạo 1 thư mục mà các bạn muốn thực thi với mình thì mình sẽ đặt tên là server-a chẳng hạn

mkdir server-a

Sau khi xong bước này các bạn cần quay lại server A và login in vào www-user và sau đó thì cd vào thư mục home/www-user/.ssh/ copy text đã được mã hoá trong private key (id_rsa)

vi id_rsa

sau đó thì copy đoạn mã hoá sau 

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAuHBaw8MXob+XPcD6Iqmg30GlgyO5VmSXwcIIbz1VR9No/HKD
4ZCKM4yRL5Pkqxd1ZbRZ/V0xAtpUkLmokhm1xdlZ4Qn+a/G7CNYALLDp5zectjkL
idNZpmnrrgIPTomUQqu80tPSNPvvYcEn26jE1epfGam36fOZ6zkR4pj/XflnT5qD
yExJ+0wv3+wnTvVulNq/38c1Z2f44DUIN4XetWBIzloBsTXwvo8NBdVyhLnfv+C1
Z4Jk3qWspo0JmGZM/uvO8HZK78fEtftg45eZNznflVwzd6zm3d4DsWpd1pT4ezx/
dfZQ3F9DBeExfYGJPDnncutgwZ9V1zNq3tS8uQIDAQABAoIBAG1z36lE4YVPmYVA
PDDN0XYsEvjb/mTSlWyapT6+exmA0FDf9HurtxgYVyCQ96bA6R5OBQligG9c+cpZ
IzxwnXqoHbp6n82XSpNXzAq5glWAnzNUbxB/qDglq4M8HbFR2/YkzI2gvqJK0CiG
5Axq/0SjLYShP09LDRCWcZKzkPhGw5k7ZQyqdXVM3dZ2yPNqeAJ3ULBHcJm63OSb
IMWmROkiOXrSvMp5q3I6b+F3DF4OMP0vizeGD0JQyhwNaOoLV8Q4kjLJJ66xI/O7
iX++I72kweqmhsc9+QzHshegD33j5XdaWPZkBHOKFxCgFSIgAx4FKZeF8RvO+Zpn
ca0XmTECgYEA3rVTzn9CyJf3oFtOCJyvMCRvJr0PmUkgx0SAdD7RmDhaJbeu1zSH
4HRG9CmYwHpfK3vdy8Eovu6Mzr4hyjQxXKr+vF16KDZhR74KnWQ1erYxJSVdHsOl
NoWbKtdjn2+Z9BUUWBb5GSKWocuD//01Lm93CASzATfd2bVb9QgiLnMCgYEA1AKF
RyY7phe5OSmKWbZVOqQ9qLmpkg2ChdbXRV+URLOweHe3kdJW3+XFLICrttM67lNv
1Z6MXdHD87P5Xe/h1N6FeiGxr7f/3Ynp4jPLTuYVL1f0bzY5PRwKgn73IuNxeh9V
Cw/qbRkhvMbjpUhyPAHrFIhDUnDfwRse6uUyUSMCgYEAnN/1jLuv+0SwtVAbg417
CdpgQVVjq4ILiNID+d5WHXd0aKUej5D9NWoyoMK8SrjoWOUDswb5AKVgojDj9F8X
dkMs9NqTtce4dqSzLXLtCOdVbukG0yjVM7ahOmhGUIR4WaqPjg2AoefvW0DUVnmy
AGeb3RYSUYVczIInqE52ZWkCgYB3lkBlZLyKsKELDFJ8zit/G3uoO6nZt4MjSY8+
E27H3e+x1B2YxGO6gZnZw26Yfsej/S58+aTFmvgD9EW55gClmSsDPBRFQO2zogJq
VLrec0wJ23wGaziYLsQC3ek7Jb4xm5DV35FlHqL4H9vytE2zaYWXnFEVJJQiEdE7
wDLErwKBgGCDB/ah6Pu0JnfuncZuwY+DNgB3v1Gidtr8L9xSLi/od4cJXmwjm1Qb
gIsyKYUNs88qelHIutmyJII76gzDaAmrgTxQXx3sfHyE261k5HlIFgr3iotslAQz
/jIgpJJDZodqQpC6rxOhfhyQvk4C8IKPmMaH2Ke7XH4h22tiI/qH
-----END RSA PRIVATE KEY-----

Sau khi copy xong bạn quay lại server B và vào thư mục server-a tạo 1 mới 1 file với đuôi là .pem,

vi /server-a/server-a.pem

ví dụ server-a.pem rồi paste đoạn mã đã copy vào nhé , sau đó chỉnh lại permission 1 chút nữa 

chmod 400 server-a.pem

Ok vậy là đến bước cuối cùng rồi thử ssh vào server A  nào các bạn chạy cmd dứoi đây nhé:

ssh -i server-a.pem www-user@your_public_id

nếu kết quả trả như sau đây là bạn đã hoàn thành rồi :

-bash-4.2$ ssh -i server-a.pem www-user@3.1.8.49
Last login: Sat May 13 16:17:53 2023

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[www-user@ip-172-31-27-42 ~]$ 

Chúc các bạn thành công !

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday