Cách chạy ssh trên mac

SSH: Secure Shell, là giao thức mạng được mã hoá, hiểu một cách đơn giản, SSH cung cấp một kết nối mạng an toàn giữa 2 thiết bị nhờ xác thực và mã hoá, tương tự như TLS/SSL. (wikipedia)
OpenSSH: OpenBSD Secure Shell, là một bộ ứng dụng kết nối cung cấp các tiện ích dựa trên SSH như đăng nhập và thao tác từ xa (remote login client), chép-copy file từ xa (scp), máy chủ dữ liệu thông qua ssh (sftp), tiện ích quản lý khoá xác thực, các tiện ích hỗ trợ máy chủ ssh như ssh-daemon. Hầu hết các máy Linux sử dụng bộ công cụ này để cung cấp tiện ích SSH cả ở phía server và client . (openSSH)

Hiểu đơn giản, nếu bạn muốn kết nối và điều khiển một máy chủ Linux từ xa (remote management), SSH cung cấp một phương thức an toàn để trao đổi dữ liệu giữa bạn (client) và máy chủ (server) còn OpenSSH sẽ cung cấp các tiện ích cần thiết để bạn thực hiện việc kết nối và quản trị (thông qua thực hiện lệnh điều khiển, quản lý tập tin – file). Từ giờ, để cho ngắn gọn, ta sẽ gọi giải pháp này là SSH.

Bạn cần những gì?

Để quản trị từ xa SSH các thiết bị như Raspberry Pi chạy Raspbian, SBC chạy Armbian hay SSH addons trên Hass (Hass.io trước đây), bạn cần:

  1. SSH client trên máy tính/điện thoại dùng để quản trị SSH từ xa. Trên MacOS và Linux ta có thể dùng tiện ích Terminal có sẵn, trên Windows hãy tải về tiện ích mã nguồn mở PuTTY phát triển bởi Simon Tatham hoặc Termius.
    * Trên điện thoại thì Terminus là một SSH client khá tốt, bạn có thể tải về từ AppStore cho iPhone/iPad và Playstore cho Android.
  2. OpenSSH-server được cài đặt trên máy chủ (Pi/Armbian/Hass…), đang kích hoạt và được phép nhận kết nối trên cổng cần thiết (cổng mặc định là 22).
    Raspbian mặc định không kích hoạt máy chủ SSH trong khi trên Armbian, máy chủ OpenSSH được kích hoạt sẵn. Bạn có thể xem thêm cách kích hoạt máy chủ SSH trên Raspbian tại đây.
    Ubuntu không đi kèm OpenSSH-server, để cài đặt và mở cổng 22 trên firewall, thông tường ta có thể dùng chuỗi lệnh: sudo apt install openssh-server && sudo ufw enable openssh && sudo ufw reload

Cách chạy ssh trên mac

Termius trên MacOS.
Termius là client SSH cho phép đồng bộ danh sách máy chủ, thông tin đăng nhập giữa nhiều máy tính hay thiết bị khác nhau.

Để tạo kết nối đến máy chủ SSH, ta cần biết địa chỉ IP hay domain (tên miền) của nó – thông thường gọi là host và cổng kết nối (mặc định là 22 nhưng có thể thay đổi tuỳ vào cấu hình máy chủ) – thông thường gọi là port. Nếu bạn kết nối vào máy chủ trên cùng mạng nội bộ – lan và máy chủ cũng như bộ định tuyến/router có hỗ trợ dịch vụ mDNS (hầu hết đều có) thì bạn có thể sử dụng tên miền nội bộ của máy chủ thay cho địa chỉ IP, ví dụ như raspberrypi.local.
Để kết nối SSH đến máy chủ:

  1. Tên Terminal, (trên MacOS, mở ứng dụng theo đường dẫn Applications > Utitilies > Terminal hoặc sử dụng Spotlight tìm kiếm Terminal) rồi dùng lệnh:
    ssh -p 22 [email protected]
    Ở đây -p 22 chỉ dẫn 22 là cổng cần kết nối, pi là tên tài khoản bạn dùng đăng nhập vào máy chủ và raspberrypi.local là tên miền của máy chủ (hoặc thay bằng địa chỉ IP).

Cách chạy ssh trên mac

2. Trên PuTTY, nhập domain/IP vào ô Host, và cổng kết nối vào ô Port, chọn SSH ở mục loại kết nối – connection type rồi bấm Open. PuTTY sẽ hỏi tên tài khoản sau khi thực hiện kết nối thành công.

Đăng nhập vào tài khoản thông qua SSH

Bán sẽ cần một tài khoản quản trị – admin hay người dùng – user sẵn có trên máy chủ để thực hiện đăng nhập. Bạn có thể đăng nhập bằng tài khoản/mật khẩu hay tài khoản/khoá SSH (SSH key). Trong đó SSH key là phương thức được cho là an toàn hơn nhưng đòi hỏi thêm một số thao tác (và do vậy vẫn cần mật khẩu) trước khi có thể đăng nhập được. SSH key cũng hữu ích khi bạn muốn tự động đăng nhập vào một SSH server mà không đòi hỏi phải thao tác thủ công (như nhập mật khẩu).

* Tuỳ vào cách cấu hình của máy chủ SSH, không phải mọi user đều có thể đăng nhập SSH

Đăng nhập bằng mật khẩu

Trên Putty, sau khi kết nối thành công, bạn nhật tên tài khoản – user rồi Enter, sau đó nhập tiếp mật khẩu.

Trên Terminal, nhập trực tiếp mật khẩu khi được hỏi.

Đăng nhập bằng SSH Key

Đây là cách được cho là an toàn hơn so với mật khẩu do SSH key thông thường có độ dài 2048 hoặc 4096 bytes (kí tự), so với một mật khẩu thông thường chỉ từ 8 đến 12 kí tự. SSH key cũng phức tạp hơn và trong quá trình xác thực, SSH key không cần phải được truyền đi từ client đến (OpenSSH) server.

Cách chạy ssh trên mac
SSH Key hay Password an toàn hơn

Key

Phức tạp và dài, khó đoán

Không cần truyền đi khi đăng nhập

Không hết hạn

Lưu trữ trên máy khách

Password

Đơn giản và ngắn, dễ đoán

Phải được truyền đi khi đăng nhập

Có hết hạn

Lưu trữ trên máy chủ

Có thể thấy, trong môi trường chuẩn thông thường (dành cho một máy chủ Linux), sử dụng SSH key an toàn hơn so với sử dụng mật khẩu.

Để đăng nhập được bằng SSH Key, trước tiên bạn cần tạo ra key này trên máy tính dùng đăng nhập – client.

Trên Terminal (MacOS/Ubuntu)

ssh-keygen -t rsa -f ~/.ssh/id_rsa

Với id_rsa là tên khoá, bạn có thể đổi tên tuỳ ý. Khoá này được lưu tại thư mục người dùng của bạn, trong thư mục ẩn .ssh.

Enter 2 lần khi được yêu cầu nhập mật khẩu của khoá – passphrase để bỏ trống hoặc nhập passphrase. Một số SSH server hoặc client không chấp nhận passphrase, do vậy ở đây chúng tôi khuyên bạn nên để trống.

Trên Putty (Windows)

Sử dụng ứng dụng PuTTYgen để tạo SSH Key. Bạn ở ứng dụng lên rồi bấm vào Generate, sau đó di chuột ngẫu nhiên cho đến khi thanh chạy màu xanh đầy để tạo key.

Cách chạy ssh trên mac

Tiếp theo bấm lưu file đã tạo vào ổ cứng. Ví dụ lưu vào Desktop với tên ssh_key.ppk. Bạn cũng Copy và lưu lại phần nội dung trong ô Key để dùng trong bước sau.

Đăng nhập SSH bằng key.

Trên Terminal (MacOS/Ubuntu)

Ta cần copy key đã tạo vào máy chủ, như sau

Nhập vào mật khẩu đăng nhập SSH của bạn. Sau khi thành công có thể đăng nhập như bình thường, lần này bạn sẽ không cần nhập mật khẩu nữa.

Trên Putty (Windows)

Trước tiên cần đăng nhập SSH vào máy chủ như bình thường, sử dụng tên và mật khẩu. Sau khi đăng nhập, nhập lệnh sau:

nano ~/.ssh/authorized_keys

Tiếp theo hãy tạo một dòng mới rồi dán – paste key bạn đã copy ở trên vào (lưu ý là key bắt đầu bằng ssh-rsa, không phải file ssh_key.ppk đã lưu). Tiếp theo ấn Ctrl-X, Y và Enter để lưu file.

Thoát ra khỏi phiên SSH này bằng lệnh exit. Sau đó trong PuTTY, thêm file ssh_key.ppk vào như dưới đây.

Cách chạy ssh trên mac
Ấn vào Browse rồi tìm file ssh_key.ppk đã lưu

Từ sau này, bạn có thể đăng nhập sử dụng key này mà không cần nhập mật khẩu.

Một số lệnh thông dụng trong Linux

Lệnh <command>

1.ls -lah /abc

2. cd /abc

3. cat /xyz.123

4. nano /xyz.123

5. sudo <command>

6. cp /xyz.123 /abc/

7. mv /xyz.123 /abc/

8. wget http://konnected.vn/index.html -o xyz.123

9. bash /abc/xyz.sh

10. sudo apt-get update

11. sudo apt-get upgrade

Ý nghĩa/Cách dùng

1. Liệt kê chi tiết tất cả thư mục, file con trong /abc

2. Chuyển đến thư mục /abc

3. Đọc nội dung file xyz.123

4. Sửa nội dung file xyz.123

5. Thực thi <command> với quyền root

6. Copy file xyz.123 đến thư mục /abc

7. Chuyển file xyz.123 đến /abc/

8. Tải file từ liên kết http://konnected.vn/index.html và lưu thành xyz.123

9. Chạy đoạn mã xyz.sh tại /abc/ bằng trình biên dịch bash

10. Sử dụng quyền root để cập nhật danh sách phần mềm

11. Sử dụng quyền root để cập nhật tất cả phần mềm

Về Bài viết

Bài viết chưa đầy đủ hoặc bạn còn có ý kiến khác? Bạn có thắc mắc và cần thêm thông tin. Vui lòng đăng ý kiến vào mục bình luận để tác giả và Team có thêm thông tin cải thiện chất lượng bài viết. Chúng tôi sẽ giải đáp các thắc mắc ngay trong mục bình luận để giúp được nhiều đọc giả với cùng vấn đề hơn hoặc chúng tôi sẽ trả lời trong một bài viết riêng. Trân trọng cảm ơn bạn!

Cảm ơn bạn đã xem bài viết này!

konnectED Team.