Câu trả lời:
Thử:
ssh-keygen -t rsa -N "" -f my.key
-N ""
yêu cầu nó sử dụng một cụm mật khẩu trống (giống như hai trong số các lần nhập trong một tập lệnh tương tác)
-f my.key
yêu cầu nó cất chìa khóa vào my.key
(thay đổi khi bạn thấy phù hợp).
Toàn bộ hoạt động mà bạn không cần phải cung cấp bất kỳ phím nhập nào :)
Để gửi các lần nhập vào một tập lệnh tương tác:
echo -e "\n\n\n" | ssh-keygen -t rsa
ssh-keygen
đã bị xóa - bạn đã thêm nó vào chưa? {sửa} Ngoài ra - bạn không thể chạy các kịch bản nhiều hơn một lần - nó thay đổi các câu hỏi để xác nhận bạn muốn ghi đè lên các hiện _rsa
keyfile (do ay hay n cần phải được cung cấp)
yes ""
thay vì echo -e "\n\n\n"
( yes
xuất ra bất kỳ đối số nào được đưa ra [hoặc "y" theo mặc định] ở vô cực - hoàn hảo cho những trường hợp này khi người ta chỉ muốn cung cấp câu trả lời "có" cho bất cứ điều gì mà chương trình có thể nhắc)). yes
ngắn hơn và nên ssh-keygen
thêm câu hỏi, câu hỏi đó cũng sẽ tự động được trả lời. :)
một phiên bản có cụm mật khẩu là:
$ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q
Đồng ý với Michel Marro ngoại trừ việc nó cần thêm một số thứ nữa: Nếu tệp đã tồn tại, nó vẫn sẽ tương tác với yêu cầu xem có phải ghi đè lên nó hay không.
Sử dụng câu trả lời của câu hỏi này .
yes y | ssh-keygen -q -t rsa -N '' >/dev/null
Việc chuyển hướng sang null là cần thiết để tắt thông báo ghi đè.
echo -e "\n"|ssh-keygen -t rsa -N ""
echo -e
phát ra thứ gì đó khác hơn -e
là không phải ở đâu ssh-keygen
cũng có).
ssh-keygen -N ''
như một phần của quy trình cài đặt tự động và nó hoàn toàn không đọc stdin, vì vậy không cần echo
( bất kỳ echo
biến thể nào ) được lắp vào đó. (Cấp, tôi tin rằng stdin được kết nối với /dev/null
trong trường hợp sử dụng sản xuất của tôi, có cũng có thể là hành vi khác nhau khi nó gắn liền với một TTY, nhưng câu trả lời tốt hơn là </dev/null
hơn echo ... |
)
$ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
Bạn nên sử dụng ed25519 để bảo mật và hiệu suất.
yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""
đây
-o
Định dạng khóa OpenSSH thay vì PEM cũ hơn (cần OpenSSH 6.5+)
-a
Số lượng bài kiểm tra tính sơ bộ trong khi sàng lọc các ứng viên DH-GEX
-t
Loại khóa (ed25519, RSA, DSA, v.v.)
-f /mypath/bla
Đường dẫn và tên tệp đầu ra
-N ""
Sử dụng mật khẩu trống
và yes "y"
không có tương tác.
Nó sẽ tạo ra hai tệp
/mypath/bla
/mypath/bla.pub
nơi bla
tệp là riêng tư và bla.pub
công khai.