Giả sử ta sẽ tạo 1 cặp key là: version_schat và version_schat.pub
- Phía Client sẽ dùng private key: version_schat
- Phía Server sẽ dùng publickey: version_schat.pub
1. Tạo cặp SSH key mới
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// Trên windown không dùng CMD, hãy dùng Gitbash nhé // Xem danh sách key hiện có. $ ls -al ~/.ssh # id_rsa --> private key # id_rsa.pub --> public key // Tạo cặp key mới với mã hóa rsa // ngắn gọn hơn $ ssh-keygen -t rsa // Lưu ý: rsa dần không được sử dụng nữa -> chuyển sang dùng ecdsa // Điền nơi lưu key: /home/duy.ngo/.ssh/id_ecdsa # Enter file in which to save the key (/home/duy.ngo/.ssh/id_ecdsa): [Press enter] // Điền mật khẩu cho key # Enter passphrase (empty for no passphrase): [Type a passphrase] # Enter same passphrase again: [Type passphrase again] # Your identification has been saved in /home/duy.ngo/.ssh/id_ecdsa # Your public key has been saved in /home/duy.ngo/.ssh/id_ecdsa.pub # The key fingerprint is: # SHA256:uOQVsO0QRG5jC/Lw0UReEfxAxiSIYf4Y4IkxO0ppBWc [email protected] // Xem lại danh sách key $ ls -al ~/.ssh # id_rsa # id_rsa.pub # id_ecdsa --> private key vừa tạo # id_ecdsa.pub --> public key vừa tạo |
2. Thêm key vào ssh-agent
1 2 3 4 5 6 7 8 9 10 11 12 |
// Kiểm tra ssh-agent xem đã được kích hoạt chưa. Nếu trên window ko nhận lệnh eval thì chạy bằng Gitbash $ eval "$(ssh-agent -s)" # Agent pid 59566 // Nếu chưa kích hoạt ssh-agent. Trên window, dùng PowerShell với Administrator Get-Service -Name ssh-agent | Set-Service -StartupType Manual // Thêm key "version_schat" vào ssh $ ssh-add ~/.ssh/id_ecdsa // Điền password của key id_ecdsa # Enter passphrase for /home/duy.ngo/.ssh/id_ecdsa: # Identity added: /home/duy.ngo/.ssh/id_ecdsa([email protected]) |
3. Kết nối
1 2 3 4 5 6 |
// Lấy nội dung public key $ cat ~/.ssh/id_ecdsa.pub # ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKuMvHV/urlcaC6hnCy++9AKVJkNAKWc+sPZ1/QMTeeSRkj8uXiVoxtua3TKsdA3ETYiKLnN7/Krdz14XI5tb7yTgOHBmSPpo/lOYcEn+sD8E1fsNdOy11Hi9OsRWUaSOHf+1ROG5gtgIN0rXiFbuCpxNYdiCCsClNpvBrn0A11hfp7za08mLB9C/xUl1a0oyLFyDd95S50rMI28hyeWFtNBhcIPItNf/fBDfKqIwetgl5xrVASxRIOkWaiMximeRK7SUtcRnFhcaVuqLR/QWxviMirXF0w9rz4ULX2UYXF7eGxnm4xokaHoNwEULOP6megiHXuqmRewzVoslnn4QntNJfijPcyv2n3wqL4nXg6ZYVKiPx73GC/2YRA7mC0oVPJKavPANshCPkafoVzCFz95wVEQ8AvehiixWo3FqZ3ehsXeooPJ07lHb5XW09xBEzBxs/UB33N9ETxPpeg1JpkKUlVN1j1U7+UqWp8q6fJJECB8rhqN/zkg2W8cIaX6M= [email protected] // Nội dung private key $ cat ~/.ssh/id_ecdsa |
3.1. Với github
1 2 3 4 5 6 7 8 9 10 11 |
// Thêm publickey: Vào trang chủ -> Settings/SSH --> New SSH Key --> điền Public key vào --> là xong // Kiểm tra đã kết nối được tới github chưa ssh -T git@github.com // kết quả The authenticity of host gitlab.com (207.97.227.239) can't be established. # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. # Are you sure you want to continue connecting (yes/no)? // Gõ "yes" # Hi duyk30b! You've successfully authenticated, but GitHub does not provide shell access. // Lưu ý với github: với key đã bị xóa thì không được phép dùng lại, buộc phải tại cặp key mới |
3.2. Với server khác
1 2 3 |
// Tại Server: thêm public key // Tại Client kết nối thử ssh -i /home/duy.ngo/.ssh/id_ecdsa schatadmin@13.76.181.183 |
4. Một vài lưu ý
1. Xóa cặp key
1 2 3 4 |
// Kiểm tra các public key đang tồn tại trong ssh-add $ ssh-add -L // Kiểm tra các finger đang tồn tại trong ssh-add $ ssh-add -l |
B1: Xóa thủ công trong folder /.ssh
B2: Xóa trong ssh-add
ssh-add -D
2. Nếu có cả cặp public-key và private-key --> để trong thư mục gốc /.ssh --> khi ssh sẽ tự động tìm key kết nối được --> ảo chưa
3. Nếu chỉ có mỗi private-key --> đương nhiên cần phải có tham số "-i" trong lệnh ssh