คุณสามารถไพพ์เข้าสู่ ssh และรันคำสั่งรีโมต ในกรณีนี้คำสั่งระยะไกลcat > big.txtจะทำการคัดลอก stdin ไปยังbig.txtไฟล์
echo "Lots of data" | ssh user@example.com 'cat > big.txt'
มันง่ายและตรงไปตรงมาตราบใดที่คุณสามารถใช้ ssh เพื่อเชื่อมต่อกับปลายระยะไกล
คุณยังสามารถใช้nc(NetCat) เพื่อถ่ายโอนข้อมูล บนเครื่องรับ (เช่น host.example.com):
nc -l 1234 > big.txt
สิ่งนี้จะตั้งค่าncให้ฟังพอร์ต 1234 และคัดลอกสิ่งที่ส่งไปยังพอร์ตนั้นไปยังbig.txtไฟล์ จากนั้นบนเครื่องส่ง:
echo "Lots of data" | nc host.example.com 1234
คำสั่งนี้จะบอกncด้านการส่งเพื่อเชื่อมต่อกับพอร์ต 1234 บนเครื่องรับและคัดลอกข้อมูลจาก stdin ผ่านเครือข่าย
อย่างไรก็ตามncวิธีแก้ปัญหามีข้อเสียเล็กน้อย:
- ไม่มีการรับรองความถูกต้อง; ทุกคนสามารถเชื่อมต่อกับพอร์ต 1234 และส่งข้อมูลไปยังไฟล์
sshข้อมูลที่ไม่ได้เข้ารหัสตามที่มันจะมี
- หากทั้งสองเครื่องอยู่หลังไฟร์วอลล์พอร์ตที่เลือกจะต้องเปิดเพื่อให้สามารถเชื่อมต่อและกำหนดเส้นทางได้อย่างถูกต้องโดยเฉพาะที่ปลายรับ
- ปลายทั้งสองจะต้องตั้งค่าอย่างอิสระและพร้อมกัน ด้วย
sshวิธีแก้ปัญหาคุณสามารถเริ่มต้นการถ่ายโอนจากหนึ่งในปลายทาง