Câu trả lời:
Để tạo cặp khóa SSH mà không được nhắc nhập cụm mật khẩu, bạn có thể làm như sau:
$ ssh-keygen -f id_rsa -t rsa -N ''
ssh-keygen: option requires an argument -- N
" :(
dzdo
lệnh trước nó, vì vậy tôi phải viết:dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
-N ''
là có ý nghĩa. Khi tôi thêm không gian, nó đã thành công!
Nếu bạn cần làm điều này từ PowerShell trong windows, hãy sử dụng:
ssh-keygen -f $Name -t rsa -N '""'
lưu ý bạn cũng phải đảm bảo thư mục git bin nằm trong đường dẫn của bạn:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
Sau đó, để sử dụng nó trong PoshGit, chỉ cần:
Add-SshKey "<path>\.shh\KeyFilename"
git\usr\bin
là thư mục chính xác.
ssh-keygen -f $Name -t rsq -N '""'
.
'""'
'""'
là biến thể duy nhất làm việc cho tôi.
$ ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''
Chỉ cần chỉnh sửa để trả lời 2 ... Tôi phát hiện ra trên hệ thống OL và RHEL của mình, tên tệp phải là id_rsa chứ không phải id.rsa.
Vì vậy, trên hệ thống OL hoặc RHEL, lệnh sẽ là:
$ ssh-keygen -f id_rsa -t rsa -N ''
id_rsa
là tên tệp mặc định cho khóa RSA, vì vậy nếu bạn muốn giữ mặc định, bạn không bị buộc phải sử dụng -f
tùy chọn một cách rõ ràng .
-f
tùy chọn là để bạn có thể thực hiện điều này trong một tập lệnh. Bạn chỉ có thể xác nhận lại mặc định để vô hiệu hóa lời nhắc tiếp theo.
Thế còn :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
Như đã lưu ý trong man ssh-keygen
:
SYNOPSIS
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile]
(...)
-q Silence ssh-keygen.
(đó là với openssh-client
gói trong Debian 9.4 căng OpenSSH_6.7p1 Debian-5+deb8u4
:)
Tôi cần tự động hóa trong tập lệnh bash lệnh ssh-keygen và câu trả lời cuối cùng phù hợp với tôi:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
Lệnh echo với -e phiên dịch "\ n" dưới dạng phím Enter, nhưng không hoạt động với cụm mật khẩu. Sau đó, sử dụng tùy chọn -N "" (cụm mật khẩu trống) mật khẩu sẽ trống và sẽ không yêu cầu bất cứ điều gì. &> / dev / null sẽ gửi 'stdout' và 'stderr' tới / dev / null để không có gì được in qua màn hình.