ฉันจะ sftp ไปยังเซิร์ฟเวอร์ได้อย่างไรหากชื่อผู้ใช้มีสัญลักษณ์ @


25

ฉันต้อง sftp ไปยังเซิร์ฟเวอร์ไปยังพอร์ตเฉพาะ แต่ชื่อผู้ใช้มีสัญลักษณ์ @

สมมติว่าผู้ใช้คือ "user@example.com" และเซิร์ฟเวอร์ ftp เป็นเพียง "example.com"

ฉันจะจบด้วย

sftp -oPort:8777 user@example.com@example.com

สิ่งที่เห็นได้ชัดจะไม่ทำงานอย่างที่ฉันได้ทดสอบ

มือสมัครเล่นประเภทใดที่สร้างชื่อผู้ใช้ด้วย @ โอเคเจ้านายของฉันทำ

ฉันจะแก้ปัญหาอย่างไร


1
ลองหลบหนี "โฆษณาเชิงพาณิชย์" อย่างนั้นsftp -oPort:8777 user\@domain.com@domain.com
ทิม

หากคุณลบส่วนชื่อผู้ใช้และออกจากโดเมนมันจะแจ้งให้คุณทราบชื่อผู้ใช้เมื่อคุณป้อนคำสั่งหรือไม่
ladaghini

@ladaghini - สิ่งนี้จะใช้ภายในสคริปต์ ... ไม่มีพรอมต์ ตกลงฉันรู้ถึงความหมายของการมีชื่อผู้ใช้และรหัสผ่านในสคริปต์ แต่ชื่อผู้ใช้นี้มีพื้นที่ จำกัด ต้องเป็น sftp เนื่องจากเซิร์ฟเวอร์นี้เพิ่งสร้างชื่อผู้ใช้สำหรับ sftp
SpaceDog

@Tim ... การหลบหนีมันไม่ได้ช่วยอะไร
SpaceDog

คำตอบ:


33

ส่งชื่อผู้ใช้ผ่าน-o Userตัวเลือกหรือผ่านUserคำสั่งเทียบเท่าในไฟล์กำหนดค่าไคลเอนต์ ( ~/.ssh/config)

sftp -o Port:8777 -o User=user@example.com example.com

นี้นำไปใช้ssh, scpและsshfsเช่นกัน การใช้ไฟล์กำหนดค่าแทน-oตัวเลือกมีประโยชน์ในการทำงานกับเครื่องมือที่โทรออกsshและไม่อนุญาตให้คุณผ่านตัวเลือกบรรทัดคำสั่งได้อย่างง่ายดาย


ชื่อผู้ใช้นี้ไม่ได้เข้าถึง ssh เพียง sftp
SpaceDog

@DigitalRobot s / ssh / sftp /
ladaghini

@DigitalRobot สิ่งนี้ใช้ได้ทั้งsshและsftp(และscpเกินไป)
Gilles 'หยุดความชั่วร้าย'

ต่อไป. เราควรทำอย่างไรถ้า passwd มี '@' หรือ '/'
Shicheng Guo

@ShichengGuo ??? ไม่มีปัญหากับ@หรือ/ในรหัสผ่าน คุณเพียงแค่พิมพ์พวกเขา SSH ไม่อนุญาตให้มีวิธีการส่งรหัสผ่านในตัวเลือกบรรทัดคำสั่งหรือในไฟล์กำหนดค่า
Gilles 'SO- หยุดความชั่วร้าย'

6
sftp -o Port:8777 'user@domain.com'@domain.com

สิ่งนี้จะใช้งานได้แม้ว่าจะเป็นรูปแบบที่ค่อนข้างแย่จริง ๆ สำหรับพวกเขาในการจัดเตรียมชื่อผู้ใช้ประเภทนี้


0

การแทนที่@("commercial at") ด้วย+("plus sign)" อาจยอมรับได้ในเซิร์ฟเวอร์ SFTP บางตัว:

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