Quản lý hiệu quả các kết nối SSH từ xa với lệnh Linux | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Quản lý hiệu quả các kết nối SSH từ xa với lệnh Linux

Chia sẻ kiến thức 15/03/2022

Tìm hiểu cách tiết kiệm thời gian quản lý máy chủ từ xa bằng các lệnh SSH và Linux dưới đây. 

Tìm hiểu cách tiết kiệm thời gian quản lý máy chủ từ xa bằng các lệnh SSH và Linux dưới đây. 

Nếu bạn chạy một hoặc nhiều máy chủ từ xa, thông thường bạn sẽ phải dành thời gian đăng nhập liên tục trong ngày.

Nhưng có cách khác tiết kiệm thời gian hơn. Đã đến lúc bạn học cách đăng nhập hiệu quả qua SSH chỉ với alias, chuyển các tệp hoặc thư mục đơn lẻ, thực hiện các lệnh SSH từ xa và dễ dàng mount* các máy chủ từ xa vào các thư mục cục bộ.

*Mount: quá trình trong đó hệ điều hành làm cho các tập tin và thư mục trên một thiết bị lưu trữ (ví dụ như ổ cứng, CD-ROM hoặc tài nguyên chia sẻ) có thể truy cập được bởi người dùng thông qua hệ thống tệp của máy tính.

Tệp cấu hình SSH

Một công cụ giúp tiết kiệm rất nhiều thời gian à tệp cấu hình SSH nằm ở ~/.ssh/config. Bắt đầu bằng cách tạo một thư mục để lưu trữ tất cả các khóa SSH mà bạn sử dụng để đăng nhập vào máy chủ bằng lệnh:

mkdir -m 0600 $HOME/.ssh_keys

Bây giờ sao chép tất cả các tệp khóa SSH của bạn vào thư mục này (ví dụ: clienta.pem, clientb.pem, v.v.). Tiếp theo, mở tệp ~/.ssh/config trong trình soạn thảo văn bản bằng cách chạy lệnh:

nano ~/.ssh/config

Dưới đây là ví dụ về một entry (mục nhập) sẽ thiết lập kết nối SSH với máy chủ từ xa:

host clienta
    hostname 124.58.2276.80
    user ubuntu
    IdentityFile ~/.ssh_keys/clienta.pem

Thêm các phần của dòng như trên vào tệp ~/.ssh/config, mỗi phần cho mỗi máy chủ bạn muốn. Sau đó, lưu và đóng tệp bằng cách nhấn Ctrl + X  và làm theo lời nhắc. Sau khi được lưu, bây giờ bạn có thể đăng nhập vào bất kỳ máy chủ nào thông qua SSH từ bất kỳ thư mục nào trong terminal bằng lệnh:

ssh clienta

Thao tác này sẽ ngay lập tức đăng nhập bạn vào máy chủ với thông tin trong máy chủ clienta mà bạn đã chỉ định trong tệp ~/.ssh/config. 

Truyền tệp với Scp/Rcp

Không cần tạo phiên đăng nhập liên tục, bạn có thể dễ dàng tải các tệp hoặc thư mục đơn lẻ lên máy chủ từ xa bằng lệnh scp, chẳng hạn như:

scp report.pdf clienta:~/

Lệnh trên sẽ tải tệp report.pdf từ máy tính cục bộ của bạn lên thư mục chính của máy chủ clienta mà bạn đã xác định trong phần trên. Bạn có thể tải lên một thư mục khác với thư mục chính, chẳng hạn như:

scp about.html clienta:/home/clienta/public_html

Lệnh trên sẽ tải tệp about.html lên thư mục /home/client/public_htm trên máy chủ clienta từ xa. Cũng có thể tải lên toàn bộ thư mục bằng cách sử dụng tùy chọn -r, chẳng hạn như:

scp -r Documents clienta:~/docs

Thao tác này sẽ tải toàn bộ thư mục ~/Documents từ máy tính cục bộ của bạn lên thư mục ~/docs của máy chủ từ xa.

Tải tập tin

Tương tự, bạn có thể tải tệp hoặc thư mục xuống máy tính cục bộ của mình mà không cần tạo phiên đăng nhập liên tục bằng lệnh rcp, chẳng hạn như:

rcp clienta:~/public_html/about.html myproject/about.html

Ở trên sẽ tải xuống tệp public_html/about.htmltừ máy chủ clienta từ xa và đặt nó vào tệp projects/about.html trên máy tính cục bộ của bạn.

Thực thi các lệnh SSH từ xa

Một mẹo nhanh khác là bạn có thể thực thi các lệnh Linux đơn lẻ trên một máy chủ từ xa mà không cần phiên đăng nhập liên tục, chẳng hạn như:

ssh clienta ls

Lệnh trên sẽ thực thi lệnh ls trên máy chủ> clienta từ xa và liệt kê tất cả các tệp / thư mục mà không giữ bạn đăng nhập vào máy chủ. Ví dụ: nếu bạn muốn khởi động lại một máy chủ, bạn có thể sử dụng: 

ssh clienta /sbin/shutdown -rf now



Thư mục /bin cục bộ 

Chúng ta cho phép dễ dàng mount các máy chủ từ xa bằng cách tạo một thư mục /bin/ cục bộ cho tài khoản người dùng của chúng ta. Mở terminal trên máy tính của bạn và tạo thư mục /bin/ bằng cách chạy lệnh:

mkdir -m 0755 ~/bin

Tiếp theo, mở tệp  ~/.profile trong trình soạn thảo văn bản bằng lệnh:

nano $HOME/.profile

Kéo xuống cuối tệp và thêm các dòng sau bằng cách sao chép chúng vào khay nhớ tạm (clipboard) của bạn, sau đó vào terminal bằng cách nhấn Ctrl + Shift + V:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Lưu và đóng tệp bằng cách nhấn Ctrl + X và làm theo lời nhắc. Thao tác này sẽ lưu tệp .profile, tệp này sẽ kiểm tra thư mục /bin/ cục bộ mới được tạo cho bất kỳ lệnh nào bạn cố gắng chạy.

Thêm lệnh mount từ xa

Trước tiên, hãy kiểm tra xem liệu sshfs đã được cài đặt trên máy tính của bạn hay chưa bằng lệnh:

sshfs --version

Nếu đầu ra trả về phiên bản sshfs hiện tại, thì bạn đã sẵn sàng. Nếu không, nếu bạn nhận được lỗi “không tìm thấy lệnh” (command not found), bạn có thể cài đặt sshfs bằng lệnh sau:

sudo apt-get -y install sshfs

Bây giờ, hãy tạo một thư mục /mnt/ để chứa tất cả các thư mục được mount đến các máy chủ từ xa của chúng ta. Trong terminal, hãy chạy các lệnh như:

mkdir -m 0755 ~/mnt
mkdir -m 0755 ~/mnt/clienta
mkdir -m 0755 ~/mnt/clientb

Tiếp tục tạo một thư mục con cho mỗi máy chủ từ xa mà bạn có thể sẽ mount. Tiếp theo, hãy tạo các lệnh shell mà chúng ta sẽ chạy. Ví dụ, đối với máy chủ clienta, hãy mở một tệp bằng cách chạy lệnh sau trong terminal:

nano ~/bin/mount_clienta

Sửa đổi dòng bên dưới nếu cần với thông tin máy chủ thích hợp, sau đó sao chép và dán nó vào trình soạn thảo văn bản trống trong terminal bằng cách nhấn Ctrl + Shift + V:

#!/bin/bash
sshfs -o IdentityFile=~/.ssh_keys/clienta.pem ubuntu@192.168.0.24:/var/www ~/mnt/clienta

Lưu và đóng tệp bằng cách nhấn Ctrl + X và làm theo lời nhắc để đóng tệp. Cuối cùng, thay đổi quyền của tệp để tệp có thể thực thi bằng cách chạy lệnh:

chmod 0755 ~/bin/mount_clienta

Giờ đây, bất cứ lúc nào bạn cần mount với máy chủ từ xa của clienta để chuyển tệp đến và đi từ nó, từ bất kỳ thư mục nào trong terminal, bạn có thể chỉ cần chạy lệnh:

mount_clienta

Thư mục trên máy tính cục bộ của bạn tại ~/mnt/clienta bây giờ sẽ được mount đến thư mục /var/www của máy chủ từ xa. Bạn có thể bắt đầu sao chép tệp đến và đi từ thư mục giống như bạn làm với bất kỳ thư mục cục bộ nào và các thao tác cần thiết sẽ diễn ra trên máy chủ từ xa.

Hy vọng rằng các thủ thuật trên sẽ giúp ạn quản lý hiệu quả hơn các kết nối tới các máy chủ từ xa. 

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/how-to-manage-remote-ssh-linux-commands/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX
icon icon

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại