Upload file từ mac lên ssh

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

Upload file từ mac lên ssh

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"

Upload file từ mac lên ssh

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 file từ mac lên ssh

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 đó

Upload file từ mac lên ssh

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 https://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 https://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 https://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 https://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 https://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 https://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 đó

Upload file từ mac lên ssh

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 https://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 https://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 https://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 https://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 https://ebudezain.com/

bài viết được viết bởi trương thanh hùng https://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 https://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 https://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 https://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 https://ebudezain.com/

bài viết được viết bởi trương thanh hùng https://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 https://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 https://ebudezain.com/

bài viết được viết bởi trương thanh hùng https://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 https://ebudezain.com/

hùng đẹp trai

bài viết được viết bởi trương thanh hùng https://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 !