ฉันต้องการสร้างสคริปต์ที่เรียกssh-keygen -t rsa
ใช้ แต่จะผ่านไปได้อย่างไร 3 ครั้งเข้า?
ฉันต้องการสร้างสคริปต์ที่เรียกssh-keygen -t rsa
ใช้ แต่จะผ่านไปได้อย่างไร 3 ครั้งเข้า?
คำตอบ:
ลอง:
ssh-keygen -t rsa -N "" -f my.key
-N ""
บอกให้ใช้ข้อความรหัสผ่านที่ว่างเปล่า (เช่นเดียวกับการป้อนสองรายการในสคริปต์โต้ตอบ)
-f my.key
บอกให้จัดเก็บคีย์ไว้ในmy.key
(เปลี่ยนตามที่เห็นสมควร)
ทุกอย่างทำงานได้โดยที่คุณไม่จำเป็นต้องใส่คีย์ใด ๆ :)
ในการส่งเข้าสู่สคริปต์โต้ตอบ:
echo -e "\n\n\n" | ssh-keygen -t rsa
ssh-keygen
ตกหล่น - คุณเพิ่มกลับเข้าไปหรือไม่? {แก้ไข} นอกจากนี้ - คุณไม่สามารถเรียกใช้สคริปต์มากกว่าหนึ่งครั้งได้ - จะเปลี่ยนคำถามเพื่อยืนยันว่าคุณต้องการเขียนทับ_rsa
ไฟล์คีย์ที่มีอยู่(ดังนั้นต้องระบุ ay หรือ n)
yes ""
แทนecho -e "\n\n\n"
( yes
ผลลัพธ์ที่ได้รับอาร์กิวเมนต์ใด ๆ [หรือ "y" โดยค่าเริ่มต้น] เป็นแบบอินฟินิตี้ - เหมาะสำหรับสถานการณ์เหล่านี้ที่ต้องการเพียงแค่ให้คำตอบ "ใช่" สำหรับสิ่งที่โปรแกรมอาจแจ้งให้) yes
สั้นกว่าและควรssh-keygen
เพิ่มคำถามที่จะได้รับคำตอบโดยอัตโนมัติด้วย :)
เวอร์ชันที่มีข้อความรหัสผ่านคือ:
$ ssh-keygen -t rsa -b 4096 -C "comment" -P "examplePassphrase" -f "desired pathAndName" -q
เห็นด้วยกับMichel Marroยกเว้นว่าต้องการมากกว่านั้น: หากมีไฟล์อยู่แล้วไฟล์จะยังคงโต้ตอบได้เพื่อถามว่าต้องเขียนทับหรือไม่
ใช้คำตอบของคำถามนี้
yes y | ssh-keygen -q -t rsa -N '' >/dev/null
การเปลี่ยนเส้นทางเป็นโมฆะเป็นสิ่งจำเป็นเพื่อปิดเสียงข้อความที่เขียนทับ
echo -e "\n"|ssh-keygen -t rsa -N ""
echo -e
ปล่อยสิ่งอื่นนอกเหนือไป-e
จากทั้งหมดซึ่งไม่มีssh-keygen
ให้บริการทุกที่)
ssh-keygen -N ''
เป็นส่วนหนึ่งของขั้นตอนการติดตั้งอัตโนมัติและมันไม่อ่าน stdin เลยดังนั้นจึงไม่จำเป็นต้องมีการpip echo
( ตัวแปรใด ๆ echo
) เข้าไปในนั้น (จริงอยู่ฉันเชื่อว่า stdin เชื่อมต่อกับ/dev/null
ในกรณีการใช้งานการผลิตของฉันอาจมีพฤติกรรมที่แตกต่างออกไปเมื่อติดกับ TTY แต่คำตอบที่ดีกว่าคือ</dev/null
มากกว่า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):
ขอแนะนำให้ใช้ed25519เพื่อความปลอดภัยและประสิทธิภาพ
yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""
ที่นี่
-o
รูปแบบคีย์ OpenSSH แทน PEM รุ่นเก่า (ต้องการ OpenSSH 6.5+)
-a
จำนวนการทดสอบเบื้องต้นขณะคัดกรองผู้สมัคร DH-GEX
-t
ประเภทของคีย์ (ed25519, RSA, DSA เป็นต้น)
-f /mypath/bla
พา ธ และชื่อไฟล์เอาต์พุต
-N ""
ใช้ passphase ว่าง
และyes "y"
ไม่มีการโต้ตอบ
มันจะสร้างไฟล์สองไฟล์
/mypath/bla
/mypath/bla.pub
โดยที่bla
ไฟล์เป็นแบบส่วนตัวและbla.pub
เป็นแบบสาธารณะ