Phần này nói về xác thực bằng SSH Key, cách sử dụng chúng để nhanh chóng tạo kết nối an toàn, tiện dụng.
- Lệnh scp
- Ví dụ sử dụng scp
Cú pháp sử dụng scp
SCP
[secure copy - sao chép an toàn] là lệnh do OpenSSH Client cung cấp, nó cho phép truyền tải file qua lại giữa máy local và remote [server], nó sử dụng giao thức SSH
để truyền file. Bạn sử dụng đến lệnh scp
khi muốn:
- Copy file,thư mục, từ máy local lên server
- Copy file,thư mục, từ máy server [remote] về local [client]
- Copy file,thư mục, từ máy server [remote] này sang máy server [remote] khác
Cú pháp cơ bản như sau
scp [OPTION] [user_src@]src_host:]src_file [user@]desk_host:]des_file
Trong đó:
[user_src@]src_host:]src_file
là file, thư mục nguồn, ví dụ:/home/file1.txt
là file/home/file1.txt
tại máy, như dấu
:
, nếu là tại máy local thì không cần chỉ ra user, host tức bỏ đoạn:
[user@]desk_host:]des_file
đường dẫn file, thư mục đích muốn copy - ý nghĩa tương tự như trên[OPTIONS]
các thiết lập cho thêm vào nếu muốn, như cho thêm tham số-r
để đệ quy copy cả thư mục, các file, thư mục con theo đường dẫn.
Ví dụ sử dụng scp
download - copy một file từ server về local
Ví dụ, có một file nằm trên server 192.168.1.99
ở đường dẫn /home/data/1.txt
, có tài khoản SSH với user là root
. Giờ muốn copy file đó về lưu ở máy local với đường dẫn là /mycode/1.txt
, sử dụng scp
như sau:
scp :/home/data/1.txt /mycode/1.txt
File 1.txt trên server đã copy về local ở đường dẫn /mycode/1.txt
Tương tự, thử thực hiện copy file đó về máy local Windows, lưu vào C:\data\1.txt
scp :/home/data/1.txt "C:\data\1.txt"
download - copy thư mục về máy local
Ví dụ copy thư mục /home/data
từ server về lưu vào /mycode/data01
scp -r :/home/data /mycode/data01
upload - copy file [thư mục] từ local lên server
Tham số của scp
chỉ ra nguồn và đích ngược lại với download là upload. Ví dụ, upload file /mycode/3.txt
lên server lưu ở /home/data/3.txt
scp /mycode/3.txt :/home/data/3.txt
Hoặc Upload cả thư mục /mycode/data/
lên server
scp -r /mycode/data :/home/data
tôi thích vậy đó
hùng thông minh lắm
đọc dữ liệu hộ bố
hùng đẹp trai
hùng ebudezain
hùng thông minh lắm
hùng ebudezain
hùng thông minh lắm
hùng ebudezain
tôi thích vậy đó
hùng đẹp trai
hùng đẹp trai
đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè
Khi tạo ra một SSH Key, bạn cần biết sẽ có 3 thành phần quan trọng như sau:
hùng thông minh lắm
hùng thông minh lắm
bài viết được viết bởi trương thanh hùng //ebudezain.com/
Public Key [dạng file và string] – Bạn sẽ copy ký tự key này sẽ bỏ vào file ~/.ssh/authorized_keys trên server của bạn.
đọc dữ liệu hộ bố
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
ahihi đồ ngốc trương thanh hùng nè
hùng đẹp trai
Private Key [dạng file và string] – Bạn sẽ lưu file này vào máy tính, sau đó sẽ thiết lập cho PuTTY, WinSCP, MobaXterm,..để có thể login.
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
đọc dữ liệu hộ bố
đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè
ahihi đồ ngốc trương thanh hùng nè
Keypharse [dạng string, cần ghi nhớ] – Mật khẩu để mở private key, khi đăng nhập vào server nó sẽ hỏi cái này.
hùng ebudezain
tôi thích vậy đó
hùng ebudezain
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng đẹp trai
Tạo SSH key trong máy mac
hùng đẹp trai
tôi thích vậy đó
hùng đẹp trai
kiểm tra bạn đã tạo ssh chưa
hùng thông minh lắm
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng đẹp trai
hùng ebudezain
hùng đẹp trai
tạo public/private ssh trong mac - Generating public/private rsa key pair.
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
ahihi đồ ngốc trương thanh hùng nè
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
hùng đẹp trai
hùng đẹp trai
hùng thông minh lắm
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
hùng đẹp trai
Sau đó nó sẽ hỏi có muốn tạo keyphare không? [keyphare là mật khẩu để mở private key, khi đăng nhập vào server sẽ hỏi]. Bạn nên nhập passphrase vào.
hùng ebudezain
tôi thích vậy đó
hùng ebudezain
hùng thông minh lắm
hùng thông minh lắm
tôi thích vậy đó
tôi thích vậy đó
hùng đẹp trai
hùng thông minh lắm
Như vậy là thành công.
bài viết được viết bởi trương thanh hùng //ebudezain.com/
Nếu bạn muốn Copy SSH key vào Clipborad nhập lệnh sau:
pbcopy < ~/.ssh/id_rsa.pub
tôi thích vậy đó
bài viết được viết bởi trương thanh hùng //ebudezain.com/
tôi thích vậy đó
hùng thông minh lắm
hùng ebudezain
tôi thích vậy đó
đọc dữ liệu hộ bố
đọc dữ liệu hộ bố
hùng ebudezain
Muốn login truy cập server chỉ cần gõ ssh root@[địa chỉ ip hoăc địa chỉ server] ví dụ của mình ip là 108.61.126.160.
đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè
tôi thích vậy đó
hùng đẹp trai
tôi thích vậy đó
trường hợp bạn có sẵn ssh private và muốn remote bằng mac
hùng đẹp trai
ahihi đồ ngốc trương thanh hùng nè
bài viết được viết bởi trương thanh hùng //ebudezain.com/
đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè
khi bạn luân chuyển máy và máy mac của bạn cần add thêm ssh vào để remote lên server thì bạn cần add private key vào SSH agent
hùng ebudezain
Thêm private-key vào SSH-agent
bài viết được viết bởi trương thanh hùng //ebudezain.com/
Trên máy local:
ssh-add /PATH/TO/YOUR/PRIVATE/KEY
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng thông minh lắm
ssh-add là câu lệnh để thêm SSH private-keys vào SSH authentication agent, gọi là ssh-agent để quản lý việc truy cập vào các máy tính sử dụng các khóa private.
hùng thông minh lắm
bài viết được viết bởi trương thanh hùng //ebudezain.com/
Khi bạn đã thêm khóa vào ssh-agent thì lúc truy cập bạn không cần phải khai báo thêm khóa này.
hùng ebudezain
hùng đẹp trai
bài viết được viết bởi trương thanh hùng //ebudezain.com/
ahihi đồ ngốc trương thanh hùng nè
bài viết được viết bởi trương thanh hùng //ebudezain.com/
chú ý: nếu bạn dính lỗi này :
tôi thích vậy đó
hùng thông minh lắm
đọc dữ liệu hộ bố
hùng thông minh lắm
đọc dữ liệu hộ bố
hùng ebudezain
ahihi đồ ngốc trương thanh hùng nè
Permissions 0664 for '/Users/hero/.ssh/id_rsa__old.ppk' are too open.
tôi thích vậy đó
ahihi đồ ngốc trương thanh hùng nè
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
It is required that your private key files are NOT accessible by others.
đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè
hùng đẹp trai
đọc dữ liệu hộ bố
ahihi đồ ngốc trương thanh hùng nè
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng ebudezain
This private key will be ignored.
tôi thích vậy đó
hùng đẹp trai
bạn thay đổi quyền thành 600 như sau:
chmod 600 /PATH/TO/YOUR/PRIVATE/KEY
ahihi đồ ngốc trương thanh hùng nè
Thêm public-key vào server
hùng thông minh lắm
hùng đẹp trai
hùng đẹp trai
Bạn có thể sử dụng một trong hai câu lệnh sau:
bài viết được viết bởi trương thanh hùng //ebudezain.com/
bài viết được viết bởi trương thanh hùng //ebudezain.com/
Cách 1 [Thêm public-key vào server]:
cat ~/.ssh/your-key.pub | ssh username@host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
hùng thông minh lắm
ahihi đồ ngốc trương thanh hùng nè
đọc dữ liệu hộ bố
Cách 2 [Thêm public-key vào server]:
ssh-copy-id -i ~/.ssh/your-key.pub username@host
hùng thông minh lắm
bài viết được viết bởi trương thanh hùng //ebudezain.com/
hùng đẹp trai
bài viết được viết bởi trương thanh hùng //ebudezain.com/
đọc dữ liệu hộ bố
Cách 3 là bạn có thể truy cập trực tiếp vào máy bằng password trước và sau đó thêm key.
ahihi đồ ngốc trương thanh hùng nè
hùng ebudezain
hùng ebudezain
tôi thích vậy đó
ahihi đồ ngốc trương thanh hùng nè
đọc dữ liệu hộ bố
đọc dữ liệu hộ bố
hùng đẹp trai
hùng đẹp trai
Vậy là bạn đã có thể truy cập vào server thành công sử dụng xác thực khóa trên SSH !