การร้องขอ exec ของ scp ล้มเหลวในช่องที่ 0


12

ฉันพยายามไฟล์ SCP จากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง

คำขอ exec ไม่สำเร็จในช่อง 0 "

เมื่อฉันใช้ SSH ฉันสามารถไปที่เครื่องได้โดยไม่มีปัญหา ฉันใช้ฟังก์ชั่น SCP ใน Cygwin ถ้าช่วยได้

สิ่งที่ฉันพบเมื่อค้นหาออนไลน์พูดคุยเกี่ยวกับไฟล์ ".bashrc" แต่สิ่งเดียวที่ฉันพบคือ "bash.bashrc"

นี่คือคำสั่งที่ฉันใช้:

scp /filelocation/file user@hostname:/folderlocation

ฉันลองด้วยที่อยู่ IP แทนชื่อโฮสต์ แต่ฉันก็มีผลลัพธ์เหมือนกัน

ฉันตรวจสอบว่าไซต์ระยะไกลมีคำสั่ง SCP

คำตอบ:


0

หากต้องการดูไฟล์. bashrc (และไฟล์อื่น ๆ ที่ขึ้นต้นด้วยจุด) คุณต้องทำ

ls -a

วิธีแก้ปัญหาง่ายๆคือเปลี่ยนชื่อไฟล์. profile, .bashrc, .login, .bash_profile เพื่อไม่ให้รวมเข้าด้วยกัน สิ่งเหล่านี้เรียกว่าไฟล์เริ่มต้นเชลล์

หาก scp ของคุณใช้งานได้คำตอบจะอยู่ในไฟล์ใดไฟล์หนึ่ง

โดยทั่วไปหนึ่งในไฟล์เริ่มต้นเชลล์กำลังส่งเอาต์พุตกลับมาและทำให้การเจรจา SSL เกิดขึ้น

อาจเป็นเรื่องง่ายเหมือนการส่งลำดับการหลีกเลี่ยงพิเศษเพื่อตั้งชื่อหน้าต่างของคุณ ผู้ร้ายอีกคนหนึ่งคือคำสั่ง stty

คุณต้องการล้อมรอบเอาต์พุตไปยังเทอร์มินัลเมื่อล็อกอินด้วยเท่านั้น

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands 
    # or other special escape sequences to terminal
fi

0

ฉันเห็นด้วยกับstrobelightว่าข้อผิดพลาดนี้มักเกิดจากเอาต์พุตจากไฟล์. bashrc (และอื่น ๆ ) การกำหนดค่าเริ่มต้นของ bash

มีวิธี bash-builtin ในการทดสอบเชลล์แบบอินเทอร์แอคทีฟว่า: การอ้างอิงคู่มือ bash-scripting ขั้นสูง , การอ้างอิงserverfault

สิ่งที่ฉันเห็นบ่อยที่สุดคือการทดสอบ $ PS1 สำหรับเวลาที่จะออก:

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