ดำเนินการ ssh ด้วยการตรวจสอบรหัสผ่านผ่านพรอมต์คำสั่งของ windows


93

ฉันต้องการเรียกใช้sshจากบรรทัดคำสั่งของ windowsโดยระบุรหัสผ่านในลักษณะที่ไม่โต้ตอบ ฉันสามารถใช้การพิสูจน์ตัวตนตามคีย์และสามารถดำเนินการคำสั่ง ssh ได้เช่นเดียวกับ

ssh <user>@<host> <command>

มีคำสั่งเช่น

ssh <user>@<host> -P <password> <command>

ป้อนคำอธิบายภาพที่นี่

ฉันไม่รู้ว่ามันเป็นไปได้หรือเปล่า อย่างไรก็ตามอาจมีวิธีแก้ไขบางอย่างสำหรับสิ่งเดียวกัน โยนความคิดให้ฉันเพื่อทำสิ่งเดียวกันให้สำเร็จ


2
การใช้การพิสูจน์ตัวตนโดยใช้คีย์เป็นแนวคิดที่ดีกว่ามาก
Greg Inozemtsev

1
ใช่ฉันมีข้อกำหนดสำหรับการตรวจสอบรหัสผ่านด้วย
Balachandar

12
@GregInozemtsev ในขณะนั้นบางครั้งความต้องการที่เกิดขึ้นสำหรับสคริปต์ที่รวดเร็วและสกปรกในการทำสิ่งนี้โดยเฉพาะในการทดสอบหรือสภาพแวดล้อมอื่น ๆ ที่ไม่จำเป็นต้องมีการรักษาความปลอดภัยที่บริสุทธิ์
TheJosh

ฉันไม่เข้าใจว่าเหตุใดจึงไม่มีตัวเลือกพื้นฐานนั้น ฉันกำลังมองหาคำสั่ง -pw superputty (สีโป๊ว) :( ฉันเดาว่าฉันจะย้ายไปที่คีย์ ssh แทน
m3nda

คำตอบ:


13

plink ฉาบของมีอาร์กิวเมนต์บรรทัดคำสั่งสำหรับรหัสผ่าน มีคำแนะนำอื่น ๆ ในคำตอบสำหรับคำถามนี้ : การใช้ Expect (ซึ่งมีให้สำหรับ Windows) หรือการเขียนตัวเรียกใช้งานใน Python ด้วย Paramiko


159

sshpassยูทิลิตี้มีความหมายสำหรับตรงนี้ ขั้นแรกให้ติดตั้ง sshpass โดยพิมพ์คำสั่งนี้:

sudo apt-get install sshpass

จากนั้นนำหน้าคำสั่ง ssh / scp ของคุณด้วย

sshpass -p '<password>' <ssh/scp command>

โปรแกรมนี้ติดตั้งง่ายที่สุดเมื่อใช้ Linux

ผู้ใช้ควรพิจารณาใช้การพิสูจน์ตัวตนคีย์สาธารณะที่ปลอดภัยยิ่งขึ้นของ SSH (ด้วยsshคำสั่ง) แทน


8
ใช้ได้กับ rsync ด้วย
TheJosh

15
เนื่องจากชื่อไม่มี "windows" และจะแสดงสูงในรายการเมื่อค้นหาสิ่งนี้สำหรับ Linux / Unix / Mac ดังนั้นการตอบคำถามนี้จะช่วยประหยัดเวลา
Frobbit

1
ใช้งานได้ดีใน Mac OS X ฉันติดตั้ง sshpass ผ่านsudo port install sshpassไฟล์. แม้ว่าจะมีปัญหาในการเข้าสู่ระบบเนื่องจากอย่างอื่น sshpass มักจะล้มเหลวโดยไม่โต้ตอบ (ไม่มีข้อความแสดงข้อผิดพลาด) ดังนั้นดีบักคำสั่งโดยไม่ต้องsshpassก่อน จากนั้นเพิ่มsshpass -p blah(ฯลฯ )
RedRedSuit

5
คุณควรทราบว่าคำสั่งเชลล์ที่ดำเนินการจะถูกเก็บไว้ (เช่นใน '.bash_history') ..
Benjamin

5
Anish - ผู้เขียนขอ windows คุณให้ตัวเลือกสำหรับ linux
arka.b

24

สคริปต์คาดหวังอะไรประมาณนี้

#!/usr/bin/expect -f
spawn ssh root@myhost
expect -exact "root@myhost's password: "
send -- "mypassword\r"
interact

มันบอกว่าฉันไม่มีสคริปต์ที่คาดหวัง
Sameer Sawla

expectได้รับการประเมินต่ำฉาวโฉ่!
Frerich Raabe


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