SSH là gì?
ssh là 1 trong nhiều phương thức chứng thực người dùng truy cập bằng cách đối chiếu giữa một key cá nhân (Private Key) và key công khai (Public Key). Private key và Public key luôn có liên hệ chặt chẽ với nhau để nó có thể nhận diện lẫn nhau. nhờ đó server khi sử dụng public key lưu trên máy chủ, thì bạn sử dụng private key ở client để xác thực thay vì sử dụng password.
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:
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.
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.
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.
Tạo SSH key trong máy mac
kiểm tra bạn đã tạo ssh chưa
tạo public/private ssh trong mac - Generating public/private rsa key pair.
kết quả:
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.
Như vậy là thành công.
Nếu bạn muốn Copy SSH key vào Clipborad nhập lệnh sau:
pbcopy < ~/.ssh/id_rsa.pub
Sau khi tạo xong bạn lấy file public key đưa lên server hoặc vps.
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.
trường hợp bạn có sẵn ssh private và muốn remote bằng mac
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
Thêm private-key vào SSH-agent
Trên máy local:
ssh-add /PATH/TO/YOUR/PRIVATE/KEY
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.
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.
chú ý: nếu bạn dính lỗi này :
Permissions 0664 for '/Users/hero/.ssh/id_rsa__old.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bạn thay đổi quyền thành 600 như sau:
chmod 600 /PATH/TO/YOUR/PRIVATE/KEY
Phần public của khóa private được lưu vào ssh-agent phải được đặt trong file : ~/.ssh/authorized_keys .
Thêm public-key vào server
Bạn có thể sử dụng một trong hai câu lệnh sau:
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"
Cách 2 (Thêm public-key vào server):
ssh-copy-id -i ~/.ssh/your-key.pub username@host
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.
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 !