ฉันต้องการสร้างสคริปต์ที่เรียก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เป็นแบบสาธารณะ