Vào máy tính không cần password linux

Mục lục

  • 1. Cài đặt SSH server:
  • 2. Tạo Key trên Server:
  • 3. Tắt đăng nhập SSH bằng password:
  • 4. SSH dùng key từ máy window bằng phần mềm Putty hoặc Mobaxterm:

Vào máy tính không cần password linux

SSH (Secure Socket Shell) là một giao thức được sử dụng để đăng nhập một máy tính từ xa.
Thông thường, người dùng hay sử dụng password để chứng thực khi SSH. Việc này rất có lợi cho hacker dễ dàng quét mật khẩu để truy cập vào hệ thống nếu người dùng đặt mật khẩu quá đơn giản.
Vì thế hôm nay TEL4VN sẽ hướng dẫn mọi người cách ssh vào server linux dùng key, không cần password.

1. Cài đặt SSH server: #

Trên CentOS:

OpenSSH đã được cài đặt mặc định khi cài đặt hệ điều hành CentOS lên server. Vì thế không cần cài đặt thêm package mới.

Trên Debian:

root@tel4vn:~# aptitude -y install ssh
root@tel4vn:~# vi /etc/ssh/sshd_config

# line 28: change to no (prohibit root login
# default setting “without-password” means that root login is permited but require key-pair authentication)

PermitRootLogin no

root@tel4vn:~# systemctl restart ssh

2. Tạo Key trên Server: #

root@tel4vn:~# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/root/.ssh/id_rsa): # Enter
Enter passphrase (empty for no passphrase): # set passphrase (set no passphrase to Enter with empty)
Enter same passphrase again:
Your identification has been saved in /home/root/.ssh/id_rsa.
Your public key has been saved in /home/root/.ssh/id_rsa.pub.
The key fingerprint is:
30:ee:f0:47:38:9d:8a:24:5e:01:c8:13:df:15:40:b4 root@tel4vn
The key’s randomart image is:

root@tel4vn:~# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 
root@tel4vn:~# chmod 600 ~/.ssh/authorized_keys 
root@tel4vn:~# cat /root/.ssh/id_rsa

Lưu lại nội dung của file về máy với đuôi .ppk. Ví dụ: key.ppk

3. Tắt đăng nhập SSH bằng password: #

Trên CentOS:

root@tel4vn:~# vi /etc/ssh/sshd_config

# line 65: turn to [no]

PasswordAuthentication no

# line 69: make sure the value is [no]

ChallengeResponseAuthentication no

# line 96: make sure the value is [yes]

UsePAM yes




root@tel4vn:~# systemctl restart sshd

Trên Debian:

root@tel4vn:~# vi /etc/ssh/sshd_config




# line 52: turn to “no”

PasswordAuthentication no




root@tel4vn:~# systemctl restart ssh

4. SSH dùng key từ máy window bằng phần mềm Putty hoặc Mobaxterm: #

Putty:

Nhập IP của server cần remote:

Vào máy tính không cần password linux

Thêm privatekey vào Options controlling SSH authentication:

Vào máy tính không cần password linux

Sau đó ấn Open để kết nối.

Mobaxterm:

Ấn tổ hộp phím Ctrl + Shift + N để tạo session mới, sau đó chọn tab SSH

Vào máy tính không cần password linux

Điền thông tin IP, port của server cần kết nối và chọn đường dẫn lưu privatekey sau đó ấn OK để lưu lại và kết nối.

Vào máy tính không cần password linux

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

4 Công cụ mã nguồn mở quản lý và giám sát log cho LinuxCách xử lý kết nối SSH bị chậm

Th8 30, 2022

Hai G.

4ít nhất Đọc

Nếu bạn chưa biết thì thường lập trình viên luôn luôn dùng SSH without password để kết nối vào server từ xa. SSH hay còn gọi là Secure Shell, là một giao thức mạng mã nguồn mở dùng để đăng nhập vào server và thực thi lệnh từ xa. Nó thường được dùng để quản lý dịch vụ cho thuê VPS hosting.

Có 2 cách để kích hoạt SSH:

  • Chứng thực bằng password
  • Chứng thực bằng public key

Public key based authentication chính là cách sử dụng SSH without password (SSH không mật khẩu).

  • Vì sao sử dụng SSH without password?
  • Tạo SSH key trong Ubuntu và CentOS:
  • Copy Public Key để kích hoạt SSH without password
  • Tiến hành sử dụng SSH không cần mật khẩu (SSH without password)
  • Làm thế nào để vô hiệu SSH không mật khẩu
  • Lời kết

Vì sao sử dụng SSH without password?

Việc sử dụng mật khẩu có bất tiện là khó nhớ và không thoải mái, vì đôi khi phải nhập mật khẩu nhiều lần nếu môi trường Linux đòi hỏi.

Các ưu điểm của SSH without password là:

  • Dễ dàng đăng nhập và không cần tương tác. Người dùng không phải gõ mật khẩu cho mỗi session kết nối
  • An toàn hơn nhiều so với mật khẩu thông thường do tính chất mã hóa của public-private key
  • Đáng tin cậy hơn
  • Quản lý truy cập và chứng thực tốt hơn
  • Giải pháp tốt cho cả hệ thống lớn và nhỏ
  • Dễ xây dựng và vận hành

Để bắt đầu dùng SSH without password, bạn cần tạo public key. Trong bài này, chúng tôi sẽ dùng SSH version 2, là bản mới nhất và an toàn hơn.

Đăng nhập VPS bằng SSH trước nhé!

Đầu tiên, bạn cần kiểm tra xem SSH key cho máy có sẵn chưa. Việc này sẽ tránh ghi đè cấu hình mới lên. Kiểm tra bằng lệnh sau:

ls -al ~/.ssh/id_*.pub

Nếu bạn đã thấy một key tồn tại, bạn có thể bỏ qua bước tạo SSH key, ghi đè key mới lên và tạo backup của key cũ. Nếu chưa có, bạn sẽ thấy kết quả output như sau:

ls: cannot access /users/appsadm/.ssh/id_*.pub: No such file or directory

Tiếp theo, chúng tôi sẽ tiến hành tạo SSH key.

Tạo SSH key trong Ubuntu và CentOS:

Để tạo cặp khóa public và private key trên Ubuntu hoặc CentOS, bạn dùng lệnh sau:

ssh-keygen -t rsa

Option -t có nghĩa là type (loại), còn RSA là giao thức được dùng để tạo khóa.

Khóa mặc định là 2048 bits. , Nếu bạn muốn bảo mật mạnh hơn, hãy đổi giá trị thành 4096 bits. Trong trường hợp đó sẽ là:

ssh-keygen -t rsa -b 4096

Đây là lệnh tương tác và bạn sẽ được hỏi những câu hỏi như sau:

  • Nhập tên file để lưu (/home/.ssh.id_rsa)
  • Nhập mật khẩu (bỏ trống nếu không đặt mật khẩu)

Bạn có thể nhấn enter cho cả 2 câu hỏi để dùng giá trị mặc định. Paraphrase sẽ dùng để mã hóa private key; nó không bắt buộc nên bạn có thể bỏ trống. Private key sẽ được lưu trong thư mục mặc định – .ssh/id_rsa.

Public key sẽ được lưu trong file .ssh/id_rsa.pub. Vậy là đã xong việc tạo khóa, bạn có thể kiểm tra lại bằng cách xem lại file.

Copy Public Key để kích hoạt SSH without password

Bạn có thể copy ssh public key tới máy đích bằng 3 cách:

  • Sử dụng ssh-copy-id command
  • Copy bằng SSH
  • Copy thủ công

Lựa chọn đầu tiên là nhanh nhất và được khuyên dùng. Với lệnh ssh-copy-id có sẵn trong hầu như mọi bản Linux. Nếu như vì lý do nào đó bạn không thấy lệnh này thì hãy dùng 1 trong 2 cách còn lại để copy ssh key.

Cách 1: Sử dụng ssh-copy-id Command để copy ssh key

Cú pháp chính của lệnh ssh-copy-id để copy ssh key là:

ssh-copy-id remote_username@remote_IP_Address

Sau đó bạn sẽ nhập mật khẩu máy remote. Sau khi chứng thực đúng, SSH public key sẽ được thêm vào file authorized_keys của máy đó. Kết nối sẽ tự động bị tắt sau khi thêm

Cách 2: Copy Private Key bằng SSH

Cách còn lại là dùng SSH để copy private key. Lệnh dưới sẽ thực hiện việc này nhưng bạn cần nhập username và Ip của máy remote.

cat ~/.ssh/id_rsa.pub | ssh remote_username@remote_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Nó sẽ thêm một entry vào trong file authorized_keys của máy remote.

Cách 3: Copy thủ công SSH Public Key

Cách thứ 3 hơi khác chút vì bạn phải copy thủ công. Bạn cần thêm nội dung của file id_rsa.pub vào trong ~/.ssh/authorized_keys.

Bạn có thể lấy nội dung của file id_rsa.pub bằng lệnh vi hay cat:

cat ~/.ssh/id_rsa.pub

Sau đó bạn copy nội dung hiện ra bắt đầu từ chỗ ssh-rsa. Kế đến bạn đăng nhập vào trong máy remote và tạo file .ssh nếu nó không có sẵn.

mkdir -p ~/.ssh

Bạn cũng có thể tạo file authorized_keys tương tự. Thêm public key vào trong file trống bằng cách sau:

echo SSH_public_key >> ~/.ssh/authorized_keys

SSH_public_key sẽ là public key được copy từ máy nguồn của bạn. Nó bắt đầu với chữ ssh-rsa.

Sau khi key được copy, bạn cần cung cấp quyền vào remote server cho thư mục .ssh bằng lệnh SSH.

chmod -766 ~/.ssh

Tiến hành sử dụng SSH không cần mật khẩu (SSH without password)

Giờ bạn có thể dùng SSH không cần mật khẩu, để kiểm thử hãy kết nối vào máy chủ từ xa:

ssh remote_username@remote_IP_Address

Nếu thành công, bạn sẽ đăng nhập tự động được mà không phải điền mật khẩu.

Làm thế nào để vô hiệu SSH không mật khẩu

Nếu bạn không cần dùng SSH không mật khẩu nữa, bạn có thể vô hiệu nó bằng các bước:

Mở file SSH configuration file – /etc/ssh/ssh_config, bằng một trình biên tập như nano. Tìm dòng PasswordAuthentication, và chỉnh lại như sau:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Sau đó, khởi động lại SSH. Lệnh khởi động lại trên Ubuntu 18.04 là:

sudo systemctl restart ssh

Còn lệnh khởi động lại trên CentOS 7

sudo systemctl restart sshd

Lời kết

Giờ bạn đã biết cách thiết lập đăng nhập vào server bằng SSH without password (không cần dùng mật khẩu). Phương pháp này an toàn hơn rất nhiều so với dùng mật khẩu thông thường và cũng tiện lợi hơn để quản lý VPS. Bạn cũng biết cách vô hiệu nó khi không cần dùng nữa. Chúng tôi hy vọng bài viết này hữu ích cho bạn, và hãy luôn giữ an toàn khi thao tác trên mạng!

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.