วิธีใช้คำสั่ง openssh sftp ด้วยคีย์ RSA / DSA ที่ระบุจากบรรทัดคำสั่ง


35

คำสั่ง Openssh ssh และ scp พิสูจน์-iตัวเลือกบรรทัดคำสั่งเพื่อระบุพา ธ ไปยังคีย์ RSA / DSA ที่จะใช้สำหรับการตรวจสอบความถูกต้อง

เมื่อดูหน้า man sftp ฉันไม่สามารถหาวิธีระบุคีย์ RSA / DSA ได้

ฉันกำลังมองหาวิธีที่จะเริ่มต้นเซสชัน sftp ที่จะใช้คีย์ RSA / DSA ที่ระบุไม่ใช่ปุ่ม ~ / .ssh / id_ {dsa, rsa}

ฉันลองใช้ไคลเอนต์ OpenSSH sftp บน Linux ... แต่มันควรมีตัวเลือกเดียวกันบนแพลตฟอร์มอื่น ๆ


2
โปรดระบุไคลเอนต์ sftp ที่คุณใช้บนแพลตฟอร์มใด
dmourati

คำตอบ:


40

sftp -oIdentityFile=/path/to/private/keyfileทางเลือกหนึ่งที่มีศักยภาพในการใช้งาน ต้องการข้อมูลเพิ่มเติมเพื่อบอกว่าจะใช้งานได้กับคุณหรือไม่ ดูเหมือนว่าจะทำงานภายใต้ Mac / Linux


11

คุณสามารถใช้-iอาร์กิวเมนต์สำหรับคำสั่ง sftp หรือ ssh ของคุณ

sftp -i /path/to/private/keyfile ...

หากตัวเลือก -i ไม่พร้อมใช้งานคุณสามารถใช้ตัวเลือก -o กับไวยากรณ์เช่น:

sftp -oIdentityFile=/path/to/private/keyfile ...

4
sftp ไม่มีตัวเลือก -i ซึ่งน่าจะเป็นเหตุผลที่ OP ถามคำถาม
user9517 รองรับ GoFundMonica

ทำงานภายใต้โฮสต์ Linux ของฉัน แต่ไม่ใช่แล็ปท็อป Mac ที่ไม่มีตัวเลือก -i อยู่
dmourati

โฮสต์ Ubuntu และ CentOS ของฉันไม่มีสวิตช์ -i สำหรับ sftp
9517 รองรับ GoFundMonica

ลูกค้า CentOS ของฉันทำ: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS รีลีส 5.6 (สุดท้าย) [dmourati @ flexo ~] $ ซึ่ง ssh / usr / bin / ssh [dmourati @ flexo ~] $ ซึ่ง sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5 [dmourati @ flexo ~] $ man sftp [dmourati @ flexo ~] $ man sftp | head SFTP (1) BSD คำสั่งทั่วไปคู่มือ SFTP (1) NAME sftp - โปรแกรมถ่ายโอนไฟล์ที่ปลอดภัย SYNOPSIS sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-c sftp_server_path] ] [-i identity_file]
dmourati

1
@dmourati: และของฉันไม่ได้ [iain @ centos ~] $ ที่ ssh / usr / bin / ssh [iain @ centos ~] $ ที่ sftp / usr / bin / sftp [iain @ centos ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5_6.3 [iain @ centos ~] $ man sftp | head SFTP (1) คำสั่งทั่วไป BSD คู่มือ SFTP (1) ชื่อ sftp - โปรแกรมถ่ายโอนไฟล์ที่ปลอดภัย SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [โปรแกรมย่อย] [-s ระบบย่อย | sftp_server] โฮสต์ sftp [[ผู้ใช้ @] โฮสต์ [: ไฟล์ [ไฟล์]]]
9517 รองรับ GoFundMonica

8

คุณสามารถสร้างไฟล์ config ทางเลือกสำหรับการเชื่อมต่อและใช้-Fสวิตช์เพื่อบอก ssh ให้ใช้ สร้างไฟล์ปรับแต่งเช่น ~ / .ssh / config.sftp ด้วยเนื้อหา

Host remote.host.tld
User RemoteUserName
IdentityFile /path/to/atlernate/identityfile

จากนั้นเรียก sftp อย่างนั้น

sftp -F ~/.ssh/config.sftp remote.host.tld
Connecting to remote.host.tld...
Enter passphrase for key '/path/to/atlernate/identityfile':
sftp>

การกำหนดค่าข้างต้น จำกัด การใช้คีย์สำรอง (เมื่อใช้ไฟล์กำหนดค่านี้) กับผู้ใช้ RemoteUserName บน remote.host.tld

ดูที่ man page สำหรับssh_confgสำหรับการใช้งานไฟล์ config ทางเลือก


ขอบคุณมากสำหรับความช่วยเหลือของคุณ! วิธีการแก้ปัญหาคุณให้ทางเลือกที่สะอาดเพื่อโต้แย้งบรรทัดคำสั่ง สำหรับตอนนี้ฉันต้องการส่งอาร์กิวเมนต์ทั้งหมดผ่านทางบรรทัดคำสั่งเนื่องจากฉันใช้ -oPort = ALT_PORT อยู่แล้ว
Adi Roiban
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.