Sử dụng OpenSSH quá tiện trên các dòng OS linux nhưng trên Windows thì lại không có sẵn lệnh ssh-copy-id. Tuy nhiên, PowerShell cũng có thể bắt dùng tương tự ssh-copy-id và cho phép bạn sao chép khóa public ssh key được tạo bởi lệnh ssh-keygen vào Linux từ xa để đăng nhập không cần mật khẩu.
Tạo key
Đầu tiên, hãy mở PowerShell (không phải cửa sổ Command Prompt!). Tạo một cặp khóa mới bằng lệnh ssh-keygen. Theo mặc định, khóa công khai và khóa riêng tư sẽ được đặt trong thư mục %USERPROFILE%/.ssh/
. Public key cần để upload có tên mặc định id_rsa.pub
.
PS D:\DevOpsify> ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\devopsify/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\devopsify/.ssh/id_rsa. Your public key has been saved in C:\Users\devopsify/.ssh/id_rsa.pub. The key fingerprint is: SHA256:KuyqdbEYKEFy6rVZ4B+OFdRsPYQAk9hj0PKNWmpyE4k devopsify@DESK1 The key's randomart image is: +---[RSA 3072]----+ |.o*+o.+.+. | |+=.*+ +.o | |o.+++=.. . | |So++O.+ | |+..=.o 0 | |o+o+ o . | |o.+.= . | | . o . | |..... | +----[SHA256]-----+
Copy key vào Linux
Tiếp theo, sử dụng lệnh PowerShell bên dưới để sao chép nội dung của khóa id_rsa.pub
vào một Linux. Thay thế {IP-ADDRESS-HOẶC-FQDN} bằng địa chỉ IP hoặc FQDN (Tên miền Đủ điều kiện) của thiết bị Linux từ xa mà bạn muốn sao chép khóa công khai.
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {user}@{IP-ADDRESS-HOAC-FQDN} "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Lưu ý khi add public key thì bạn có cần xác định user cho phép remote bằng cách thay thế {user}@{IP-ADDRESS-HOAC-FQDN}
. Nếu không thì tool sẽ lấy mặc định user đang dùng trên máy của bạn và sẽ hỏi password. Bạn nhập password của server vào để đăng nhập và add key.
Kết nối vào Linux
Kiểm tra kết nối vừa add key vào bằng lệnh bên dưới
PS D:\DevOpsify> ssh devopsify@104.12.225.104 Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-126-generic x86_64)