คำสั่งสำหรับการเข้าสู่ระบบด้วย FTP ทั้งหมดมีหนึ่งบรรทัดคืออะไร?
ftp username:password@my.domain.com
พูดว่า:
รหัสผ่านที่จำเป็นสำหรับชื่อผู้ใช้: รหัสผ่าน
คำสั่งสำหรับการเข้าสู่ระบบด้วย FTP ทั้งหมดมีหนึ่งบรรทัดคืออะไร?
ftp username:password@my.domain.com
พูดว่า:
รหัสผ่านที่จำเป็นสำหรับชื่อผู้ใช้: รหัสผ่าน
คำตอบ:
ftp -nv yourftpserver.com
จากนั้นuser your_username
หรือuser anonymous
ฉันโพสต์คำตอบนี้เนื่องจากftp ftp://username:password@my.domain.com
ไม่ได้ผลสำหรับฉัน
Usage: { ftp | pftp } [-46pinegvtd] [hostname]
-4: use IPv4 addresses only
-6: use IPv6, nothing else
-p: enable passive mode (default for pftp)
-i: turn off prompting during mget
-n: inhibit auto-login
-e: disable readline support, if present
-g: disable filename globbing
-v: verbose mode
-t: enable packet tracing [nonfunctional]
-d: enable debugging
ftp ftp://username:password@my.domain.com
คุณสามารถค่อนข้างง่ายได้ใช้ftp --help
แต่
ftp -help
ไม่ช่วยเหลือและรูปแบบที่คุณแนะนำไม่เหมาะกับฉันใน Ubuntu 16
ตัวเลือกที่ดีที่สุดคือการใช้. netrcพร้อมกับ gpg เพื่อความปลอดภัย
ฉันได้เขียนสคริปต์วัตถุประสงค์ทั่วไปสำหรับสิ่งนี้ซึ่งฉันสามารถอัปโหลดในภายหลัง แต่มันจะลดลงไปที่:
gpg -c .netrc
หรือเลือกที่มีวลีรหัสผ่านบน commandline และปลายทางผลลัพธ์:
gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc
ไม่แสดงที่นี่ แต่คุณสามารถใช้คีย์แบบอสมมาตรเพิ่มเติมได้ (หากคุณตั้งค่าไว้) ด้วย gpg เพื่อทำให้สิ่งนี้ปลอดภัยยิ่งขึ้น
จากนั้นเมื่อคุณพร้อมที่จะเข้าสู่ระบบ
gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc
ตัวอย่าง. netrc:
machine google.com
login <username>
password <secretpassword>
จริง ๆ แล้วฉันเก็บแฮชภายในเครื่องและสำเนาดั้งเดิมของไฟล์เหล่านี้ไว้ในคอมพิวเตอร์เครื่องอื่นนอกเหนือจากที่ฉันใช้ในไฟล์. netrc และตรวจสอบการแฮชของ. netrc และสคริปต์ที่ฉันเรียกใช้ แต่นั่นคือด้านบนและ เกินคำถามเดิมของ OP
chmod 600 .netrc
(3) ฟังก์ชั่นของเชลล์ในรูปแบบ wrapper รอบ ๆ decrypt, ftp call และการลบ decrypted .netrc นั้นจะมีประโยชน์ ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมของคุณ!
คุณสามารถลอง
my_ftp() {
ftp -i -n <<EOF
open $HOST
user "$USER" "$PASS"
$@
EOF
}
ซึ่งคุณสามารถโทรด้วย my_ftp $'ls subfolder\nanothercommand'
วิธีนี้ไม่ได้เป็นแบบโต้ตอบ แต่สิ่งที่ดีที่สุดที่ฉันสามารถหาได้
man ftp
ftp --help
อย่าลืมว่าftp
อาจหมายถึงระบบสาธารณูปโภคที่แตกต่างกัน ....