ส่งรหัสผ่านผ่าน stdin ใน `ssh-copy-id`


11

ssh-copy-idฉันต้องการที่จะทำงานโดยอัตโนมัติการใช้งานตัวตนบางนึกคิดใช้

ฉันพยายามให้รหัสผ่าน stdin ซึ่งเป็นไปได้sshโดยใช้การ-Sตั้งค่าสถานะ ฉันทราบว่าฉันสามารถส่งตัวเลือกเพิ่มเติมเพื่อsshใช้การ-oตั้งค่าสถานะในssh-copy-idคำสั่ง แต่ไม่มีตัวอย่างการใช้งานของการตั้งค่าสถานะนี้ในหน้า man

ดังนั้นฉันพยายามส่งรหัสผ่าน SSH สำหรับssh-copy-idผ่าน stdin โดยใช้:

$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"

แต่สิ่งที่ฉันได้รับคือ:

/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s

แก้ไข:

ฉันพยายามให้รหัสผ่าน stdin ซึ่งเป็นไปได้ sshโดยใช้การ-Sตั้งค่าสถานะ

คำสั่งนี้ผิด ฉันอ่านธงนี้จากsudoมนุษย์จริงๆ

คำตอบ:


15

คุณอาจต้องการลองติดตั้ง sshpass และเปลี่ยนการโทรเป็นssh-copy-id:

sshpass -p "$TMP_PASS" ssh-copy-id

lol ไม่ใช่ใน mac และเมื่อbrew installพยายามฉันได้รับ "ข้อผิดพลาด: ไม่มีสูตรที่ใช้ชื่อ" sshpass "เราจะไม่เพิ่ม sshpass เพราะทำให้ผู้ใช้มือใหม่ SSH ง่ายเกินไปที่จะทำลายความปลอดภัยของ SSH"
tofutim

มีคำแนะนำในการติดตั้งกับ homebrew บน osx ที่นี่gist.github.com/arunoda/7790979#installing-with-homebrew คุณเพียงแค่ต้องเปิดใช้งานbrew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
ewatt

2

คุณหาข้อมูลเกี่ยวกับ-Sตัวเลือกได้จากที่ใด มันทำสิ่งที่แตกต่างอย่างสิ้นเชิง! มันใช้สำหรับมัลติเพล็กซ์และ ControlPath

SSH จะไม่ยอมรับรหัสผ่านบน stdin เคยดังนั้นคุณจึงควรติดตั้งล่วงหน้าคีย์ที่ได้รับอนุญาตในการใช้งานของคุณ (วิธีที่แนะนำ) หรือการใช้งานsshpassหรือexpectสคริปต์ที่อธิบายไว้ในคำถามอื่น ๆ อีกมากมาย


ประณามคุณถูก! ฉันเพิ่งรู้ว่า-Sธงมาจากsudo: S
2grit

หากฉันต้องการติดตั้งคีย์ของฉันบนโฮสต์ 100 แห่งโดยใช้ ssh-copy-id โดยที่โฮสต์ทั้งหมดมีชื่อผู้ใช้และรหัสผ่านเริ่มต้นอยู่แล้วจะหลีกเลี่ยง ssh-copy-id ที่ถามฉันทุกครั้งที่ใช้รหัสผ่านเดียวกันได้หรือไม่
realtebo

ที่ได้รับคำตอบแล้วในทั้งสองคำตอบ - ใช้ sshpass ถ้าคุณต้องหรือคาดว่าสคริปต์
Jakuje
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.