ฉันลาดเท scp เซิร์ฟเวอร์อื่นใช้การเชื่อมต่อ SFTP เท่านั้น
ขณะนี้ฉันกำลังพยายามทำ
sftp jay@server.name.com:/files> put -r ~/
-i keyname
illegal option -- i
ไม่ทำงานแก้ไขเพียงกับ
ฉันลาดเท scp เซิร์ฟเวอร์อื่นใช้การเชื่อมต่อ SFTP เท่านั้น
ขณะนี้ฉันกำลังพยายามทำ
sftp jay@server.name.com:/files> put -r ~/
-i keyname
illegal option -- i
ไม่ทำงานแก้ไขเพียงกับ
คำตอบ:
ลอง:
sftp -o "IdentityFile=keyname" jay@server.name.com
คุณสามารถใช้ในการส่งผ่านตัวเลือกที่ถูกต้องในการใด-o
ๆ~/.ssh/config
IdentityFile
ตัวเลือกได้รับโดยอัตโนมัติให้ตรวจสอบคำตอบของUtahJarheadเกี่ยวกับการใส่ไว้ใน~/.ssh/config
คัดลอกกุญแจสาธารณะของคุณไปยังเซิร์ฟเวอร์โดยใช้วิธีการดั้งเดิม
บนเซิร์ฟเวอร์:
.ssh
ถ้าไม่มี:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / authorized_keys"
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / authorized_keys"
หลังจากนั้นคุณควรจะสามารถเข้าสู่ระบบจากลูกค้าโดยใช้คีย์ส่วนตัว ในการถ่ายโอนโดยอัตโนมัติคุณต้องการใช้แบตช์ไฟล์ซึ่งเป็นเพียงไฟล์ข้อความที่มีรายการคำสั่งเพื่อดำเนินการ
echo "ใส่ filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / พา ธ / ไปยัง / private_key user @ host
หรืออย่าลังเลที่จะสร้างไฟล์ ~ / .ssh / config ในรูปแบบ ssh_config เพื่อให้คุณสามารถพิมพ์ได้ในอนาคต:
sftp -b /tmp/batchfile.txt โฮสต์
ตัวอย่างเนื้อหาของ ~/.ssh/config
โฮสต์ the_hostname ชื่อผู้ใช้ IdentityFile / path / to / private_key
หากคุณต้องการติดตั้ง sftp บน ec2 บทความนี้อาจช่วยคุณได้
ฉันได้รับปัญหานี้เมื่อเร็ว ๆ นี้และสิ่งที่ได้ผลสำหรับฉันในการตั้งค่าเทอร์มินัลเริ่มต้นสำหรับ macbook ของฉันมีดังต่อไปนี้
sftp -i ./privateFilePath.key username@url.com
หมายเหตุคุณอาจได้รับการเลื่อนตำแหน่งโดยไฟล์ส่วนตัวที่ไม่มีการป้องกัน! ข้อความในกรณีที่คุณต้องเรียกใช้คำสั่งนี้เพื่อให้แน่ใจว่าผู้อื่นไม่สามารถเข้าถึงคีย์ส่วนตัวของคุณได้
chmod 600 privateFilePath.key
ในบางกรณีคุณต้องใส่sudoไว้ข้างหน้าคำสั่งนี่ก็ต่อเมื่อคุณกำลังทำงานในไดเรกทอรีที่ได้รับการป้องกันโดยผู้ดูแลระบบ
ฉันหวังว่าจะเป็นประโยชน์ :)
-i
ตัวเลือกไม่ทำงาน