Thứ ba, 10/09/2013 | 00:00 GMT+7

Cách sử dụng SSH để kết nối với server từ xa trong Ubuntu


SSH là gì?

Một công cụ cần thiết để thành thạo với quyền là administrator hệ thống là SSH.

SSH, hoặc Secure Shell , là một giao thức được sử dụng để đăng nhập an toàn vào các hệ thống từ xa. Đây là cách phổ biến nhất để truy cập các server Linux và Unix từ xa.

Trong hướng dẫn này, ta sẽ thảo luận về cách sử dụng SSH để kết nối với hệ thống từ xa.

Cú pháp cơ bản

Không có gì ngạc nhiên khi công cụ trên Linux để kết nối với hệ thống từ xa bằng SSH được gọi là ssh .

Dạng cơ bản nhất của lệnh là:

  • ssh remote_host

Remote_host trong ví dụ này là địa chỉ IP hoặc domain mà bạn đang cố gắng kết nối.

Lệnh này giả định tên user của bạn trên hệ thống từ xa giống với tên user trên hệ thống local của bạn.

Nếu tên user của bạn khác trên hệ thống từ xa, bạn có thể chỉ định tên user đó bằng cách sử dụng cú pháp sau:

  • ssh remote_username@remote_host

Khi bạn đã kết nối với server , bạn có thể cần xác minh danh tính của bạn bằng cách cung cấp password .

Sau đó, ta sẽ trình bày cách tạo khóa để sử dụng thay vì password .

Để thoát trở lại phiên local của bạn, chỉ cần nhập:

  • exit

SSH hoạt động như thế nào?

SSH hoạt động bằng cách kết nối client với server ssh .

Trong các lệnh trên, ssh là client . Máy chủ ssh đã chạy trên remote_host mà ta đã chỉ định.

Trong Server, server sshd đã được chạy. Nếu không đúng như vậy, hãy nhấp vào nút Truy cập Control panel từ trang Server:

Nút điều khiển DigitalOcean

Bạn sẽ thấy một màn hình đăng nhập. Đăng nhập bằng thông tin đăng nhập của bạn.

Quá trình cần để khởi động server ssh tùy thuộc vào bản phân phối Linux mà bạn đang sử dụng.

Trên Ubuntu, bạn có thể khởi động server ssh trên Server bằng lệnh :

  • sudo service ssh start

Trên Ubuntu 16.04 và Debian Jessie, bạn có thể sử dụng systemctl , lệnh systemd để quản lý các dịch vụ:

  • sudo systemctl start ssh

Điều đó sẽ khởi động server sshd và sau đó bạn có thể đăng nhập từ xa.

Cách cấu hình SSH

Khi bạn thay đổi cấu hình của SSH, bạn đang thay đổi cài đặt của server sshd.

Trong Ubuntu, file cấu hình sshd chính được đặt tại / etc / ssh / sshd_config .

Backup version hiện tại của file này trước khi chỉnh sửa:

  • sudo cp /etc/ssh/sshd_config{,.bak}

Mở nó bằng một editor :

  • sudo nano /etc/ssh/sshd_config

Bạn cần để lại hầu hết các tùy chọn trong file này một mình. Tuy nhiên, có một số bạn có thể cần xem qua:

/ etc / ssh / sshd_config
Port 22 

Khai báo cổng chỉ định cổng nào server sshd sẽ lắng nghe các kết nối. Theo mặc định, đây là 22. Bạn có thể nên để nguyên cài đặt này, trừ khi bạn có lý do cụ thể để làm khác. Nếu bạn thay đổi cổng của bạn, ta sẽ cho bạn thấy làm thế nào để kết nối vào cổng mới sau này.

/ etc / ssh / sshd_config
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key 

Khai báo khóa server chỉ định nơi tìm khóa server global . Ta sẽ thảo luận về khóa server là gì sau.

/ etc / ssh / sshd_config
SyslogFacility AUTH LogLevel INFO 

Hai mục này cho biết mức độ ghi log sẽ xảy ra.

Nếu bạn đang gặp khó khăn với SSH, tăng số lượng ghi log có thể là một cách tốt để khám phá vấn đề là gì.

/ etc / ssh / sshd_config
LoginGraceTime 120 PermitRootLogin yes StrictModes yes 

Các thông số này chỉ định một số thông tin đăng nhập.

LoginGraceTime chỉ định bao nhiêu giây để duy trì kết nối mà không cần đăng nhập thành công.

Có thể là một ý kiến hay nếu bạn đặt thời gian này cao hơn một chút so với khoảng thời gian bạn cần để đăng nhập bình thường.

PermitRootLogin chọn xem root có được phép đăng nhập hay không.

Trong hầu hết các trường hợp, điều này sẽ được thay đổi thành “no” khi bạn đã tạo account user có quyền truy cập vào các quyền nâng cao (thông qua su hoặc sudo) và có thể đăng nhập thông qua ssh.

Nghiêm ngặt là một bộ phận bảo vệ an toàn sẽ từ chối nỗ lực đăng nhập nếu mọi người đều có thể đọc được file xác thực.

Điều này ngăn cản nỗ lực đăng nhập khi file cấu hình không an toàn.

/ etc / ssh / sshd_config
X11Forwarding yes X11DisplayOffset 10 

Các tham số này cấu hình một khả năng được gọi là Chuyển tiếp X11 . Điều này cho phép bạn xem giao diện user đồ họa (GUI) của hệ thống từ xa trên hệ thống local .

Tùy chọn này phải được bật trên server và được cung cấp cùng với client SSH trong quá trình kết nối với tùy chọn -X .

Sau khi thực hiện thay đổi, hãy lưu file bằng lệnh CTRL-XY , sau đó nhấn ENTER .


Nếu bạn đã thay đổi cài đặt nào trong /etc/ssh/sshd_config , hãy đảm bảo bạn khởi động lại server sshd để áp dụng thay đổi của bạn :

  • sudo service ssh restart

Hoặc, trên các hệ thống systemd như Ubuntu 16.04 hoặc Debian Jessie:

  • sudo systemctl restart ssh

Bạn nên kiểm tra kỹ các thay đổi của bạn đảm bảo rằng chúng hoạt động theo cách bạn muốn .

Có thể là một ý kiến hay nếu bạn đang thực hiện một vài phiên hoạt động. Điều này sẽ cho phép bạn hoàn nguyên cấu hình nếu cần.

Nếu bạn gặp sự cố, hãy nhớ rằng bạn có thể đăng nhập thông qua liên kết Control panel trên trang Server của bạn .

Cách đăng nhập SSH bằng phím

Mặc dù rất hữu ích khi có thể đăng nhập vào hệ thống từ xa bằng password , nhưng bạn nên cài đặt xác thực dựa trên khóa .

Xác thực dựa trên khóa hoạt động như thế nào?

Xác thực dựa trên khóa hoạt động bằng cách tạo một cặp khóa: khóa riêng tưkhóa công khai .

Khóa cá nhân nằm trên client và được bảo mật và giữ bí mật.

Khóa công khai có thể được cấp cho bất kỳ ai hoặc được đặt trên bất kỳ server nào bạn muốn truy cập.

Khi bạn cố gắng kết nối bằng cặp khóa, server sẽ sử dụng public key để tạo thông báo cho client chỉ có thể đọc được bằng private key .

Máy khách sau đó sẽ gửi phản hồi thích hợp trở lại server và server sẽ biết rằng client là hợp lệ .

Toàn bộ quá trình này được thực hiện tự động trong nền sau khi bạn cài đặt khóa.

Cách tạo SSH key

Khóa SSH nên được tạo ra trên máy tính mà bạn muốn đăng nhập từ. Đây thường là máy tính local của bạn.

Nhập thông tin sau vào dòng lệnh:

  • ssh-keygen -t rsa

Nhấn enter để chấp nhận các giá trị mặc định. Khóa của bạn sẽ được tạo tại ~ / .ssh / id_rsa.pub~ / .ssh / id_rsa .

Thay đổi vào .ssh bằng lệnh :

  • cd ~/.ssh

Xem các quyền của các file :

  • ls -l
Output
-rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys -rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa -rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub

Như bạn thấy , file id_rsa chỉ có thể đọc và ghi được đối với chủ sở hữu. Đây là cách nó nên được giữ bí mật.

Tuy nhiên, file id_rsa.pub có thể được chia sẻ và có các quyền thích hợp cho hoạt động này.

Cách chuyển public key của bạn đến server

Bạn có thể sao chép public key vào server từ xa bằng cách ra lệnh sau:

  • ssh-copy-id remote_host

Thao tác này sẽ bắt đầu một phiên SSH mà bạn cần xác thực bằng password của bạn .

Sau khi bạn nhập password , nó sẽ sao chép public key của bạn vào file khóa được ủy quyền của server , file này sẽ cho phép bạn đăng nhập mà không cần password vào lần sau.

Tùy chọn phía client

Có một số cờ tùy chọn mà bạn có thể chọn khi kết nối qua SSH.

Một số trong số này có thể cần thiết để phù hợp với cài đặt trong cấu hình sshd của server từ xa.

Ví dụ: nếu bạn đã thay đổi số cổng trong cấu hình sshd của bạn , bạn cần phải khớp cổng đó ở phía client bằng lệnh :

  • ssh -p port_number remote_host

Nếu bạn chỉ muốn thực hiện một lệnh duy nhất trên hệ thống từ xa, bạn có thể chỉ định nó sau server như sau:

  • ssh remote_host command_to_run

Bạn sẽ kết nối với máy từ xa, xác thực và lệnh sẽ được thực thi.

Như ta đã nói trước đây, nếu chuyển tiếp X11 được bật trên cả hai máy tính, bạn có thể truy cập chức năng đó bằng lệnh :

  • ssh -X remote_host

Cung cấp cho bạn các công cụ thích hợp trên máy tính của bạn , các chương trình GUI mà bạn sử dụng trên hệ thống từ xa giờ đây sẽ mở cửa sổ của chúng trên hệ thống local của bạn.

Tắt xác thực password

Nếu bạn đã tạo SSH key , bạn có thể tăng cường bảo mật cho server của bạn bằng cách tắt xác thực chỉ bằng password . Ngoài console , cách duy nhất để đăng nhập vào server của bạn sẽ là thông qua private key ghép nối với public key mà bạn đã cài đặt trên server .

Lưu ý: Trước khi bạn tiếp tục bước này, hãy đảm bảo bạn đã cài đặt public key cho server của bạn . Nếu không, bạn sẽ bị khóa!

Như là user root hoặc user không phải root với quyền sudo, mở file cấu hình sshd:

  • sudo nano /etc/ssh/sshd_config

Tìm dòng ghi Password Authentication và bỏ ghi chú bằng cách xóa dấu # đầu. Sau đó, bạn có thể thay đổi giá trị của nó thành “no” :

sshd_config - Tắt xác thực password
PasswordAuthentication no 

Hai cài đặt khác không cần phải sửa đổi (miễn là bạn chưa sửa đổi file này trước đó) là PubkeyAuthenticationChallengeResponseAuthentication . Chúng được đặt theo mặc định và sẽ đọc như sau:

sshd_config - Các giá trị mặc định quan trọng
PubkeyAuthentication yes ChallengeResponseAuthentication no 

Sau khi thực hiện các thay đổi , hãy lưu file .

Đến đây bạn có thể reload daemon SSH:

  • sudo systemctl restart ssh

Xác thực password hiện đã bị vô hiệu hóa và server của bạn chỉ có thể truy cập được thông qua xác thực SSH key .

Kết luận

Học theo cách của bạn về SSH là một việc đáng theo đuổi, nếu chỉ vì nó là một hoạt động phổ biến.

Khi bạn sử dụng các tùy chọn khác nhau, bạn sẽ khám phá ra nhiều chức năng nâng cao hơn có thể giúp cuộc sống của bạn dễ dàng hơn. SSH vẫn được ưa chuộng vì nó an toàn, nhẹ và hữu ích trong các tình huống khác nhau.


Tags:

Các tin liên quan

Cách sử dụng ps, kill và hay để quản lý các tiến trình trong Linux
2013-09-06
Cách xem người dùng hệ thống trong Linux trên Ubuntu
2013-09-05
Cách sử dụng mật khẩu và trình bổ sung để quản lý mật khẩu trên VPS Linux
2013-09-04
Cách cài đặt Linux, Lighttpd, MySQL và PHP5 (LLMP Stack) trên CentOS 6
2013-08-30
Cách sử dụng Top, Netstat, Du và các công cụ khác để giám sát tài nguyên server
2013-08-26
So sánh server Django: server phát triển, Mod_WSGI, uWSGI và Gunicorn
2013-08-19
Giới thiệu khái niệm cơ bản về Linux
2013-08-16
Cách sử dụng SFTP để truyền tệp an toàn bằng server từ xa
2013-08-13
Cách thiết lập server Git riêng trên VPS
2013-08-02
Cách cài đặt và cấu hình firewall server cấu hình (CSF) trên Ubuntu
2013-07-29