Post

Điều khiển Ubuntu từ Windows thông qua giao thức SSH

Để cài đặt OpenSSH Server trên Ubuntu có thể tham khảo bài viết sau:
Cài đặt và sử dụng OpenSSH Server trong Linux Mint


Xác định địa chỉ IP của Ubuntu bằng dòng lệnh:

1
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Hoặc:

1
ip a

Ghi nhớ địa chỉ IP được hiển thị.

Trên máy tính Windows, có thể kiểm tra số hiệu phiên bản của OpenSSH Client với dòng lệnh:

1
ssh -V

Nếu có số hiệu phiên bản OpenSSH, có nghĩa là nó đã được cài đặt. Nếu không, có thể cài đặt nó bằng cách truy cập vào Settings > Apps > Optional features > Add a feature > OpenSSH Client.

Có thể cần cho OpenSSH vào danh sách trắng (whitelist) của tường lửa với cổng (port) 22.

Trên máy tính Windows, mở Command Prompt hoặc PowerShell hoặc Windows Terminal, kết nối tới Ubuntu bằng dòng lệnh:

1
ssh username@ubuntu-ip-address

Thay username bằng tên người dùng trong Ubuntu và ubuntu-ip-address bằng địa chỉ IP của Ubuntu.


Các câu lệnh dưới đây là cho trường hợp sử dụng SSH với key.

Trên Windows, tạo key với câu lệnh:

1
ssh-keygen -t rsa

Người dùng sẽ được hỏi nơi để lưu trữ khoá, nhấn Enter để bỏ qua, và sử dụng nơi lưu trữ mặc định.

Có 2 cặp khoá, id_rsa (privatekey - khoá riêng tư) và id_rsa.pub (publickey - khoá công khai). id_rsa được lưu trữ trên máy tính cá nhân của người dùng. id_rsa.pub sẽ được sử dụng trên máy chủ từ xa.

Tiếp theo là sao chép nội dung của tệp tin id_rsa.pub vào tệp tin authorized_keys của máy chủ Linux (Ubuntu).

Sao chép nội dung của tệp tin id_rsa.pub vào bộ nhớ đệm:

1
type C:\Users\%username%\.ssh\id_rsa.pub | clip

Kết nối đến máy chủ:

1
ssh username@ubuntu-ip-address

Tạo tệp tin authorized_keys:

1
mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

Thêm nội dung của id_rsa.pub vào authorized_keys bằng dòng lệnh echo:

1
echo paste_content_of_id_rsa.pub_to_here >> ~/.ssh/authorized_keys

Hoặc sử dụng dòng lệnh scp để sao chép nội dung của tệp tin id_rsa.pub vào tệp tin authorized_keys của máy chủ Linux (Ubuntu):

1
scp id_rsa.pub ssh username@ubuntu-ip-address:.ssh/authorized_keys

SCP là viết tắt của Secure Copy. Đây là một công cụ dòng lệnh cho phép người dùng sao chép các tệp và thư mục giữa các máy tính sử dụng giao thức SSH. SCP là một cách an toàn để sao chép các tệp vì nó mã hóa tất cả dữ liệu được truyền qua mạng.

Hoặc sử dụng Git Bash trên Windows để sao chép mã khóa công khai id_rsa.pub lên máy chủ với câu lệnh ssh-copy-id:

1
ssh-copy-id username@ubuntu-ip-address

Đặt quyền truy cập cho tệp tin authorized_keys:

1
sudo chmod 700 /home/%username% && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

Cấu hình để truy cập bằng SSH key:

1
nano /etc/ssh/sshd_config

Cho phép 2 dòng lệnh được chạy:

1
2
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_key

Khởi động lại OpenSSH Server:

1
sudo systemctl restart sshd.service

Kiểm tra thử:

1
ssh username@ubuntu-ip-address

Nếu không yêu cầu nhập mật khẩu là thành công.


Có thể cấu hình cho tệp tin config trong máy tính Windows.
Đi đến thư mục C:\Users\%username%\.ssh và chỉnh sửa tệp tin config bằng chương trình tạo/chỉnh sửa văn bản/mã bất kỳ, với nội dung như sau:

1
2
3
4
Host name-of-ssh-host-here
    User your-user-name-on-host
    HostName host-fqdn-or-ip-goes-here
    IdentityFile ~/.ssh/id-remote-ssh

Trên Windows, dòng IdentityFile ~/.ssh/id-remote-ssh có thể sử dụng cú pháp thay thế như bên dưới:

1
IdentityFile C:\\Users\\%username%\\.ssh\\id-remote-ssh

Ở trường hợp này tệp tin id-remote-ssh chính là id_rsa.


Đọc thêm:

This post is licensed under CC BY 4.0 by the author.