โฮมเพจ » ทำอย่างไร » วิธีการคัดลอกไฟล์จากระยะไกลผ่าน SSH โดยไม่ต้องป้อนรหัสผ่านของคุณ

    วิธีการคัดลอกไฟล์จากระยะไกลผ่าน SSH โดยไม่ต้องป้อนรหัสผ่านของคุณ

    SSH เป็นผู้ช่วยชีวิตเมื่อคุณต้องการจัดการคอมพิวเตอร์จากระยะไกล แต่คุณรู้หรือไม่ว่าคุณสามารถอัพโหลดและดาวน์โหลดไฟล์ได้เช่นกัน ใช้คีย์ SSH คุณสามารถข้ามได้โดยไม่ต้องป้อนรหัสผ่านและใช้สำหรับสคริปต์!

    กระบวนการนี้ทำงานบน Linux และ Mac OS โดยมีเงื่อนไขว่าพวกเขาได้รับการกำหนดค่าอย่างเหมาะสมสำหรับการเข้าถึง SSH หากคุณใช้ Windows คุณสามารถใช้ Cygwin เพื่อรับฟังก์ชั่นคล้ายกับ Linux และด้วยการปรับแต่งเล็กน้อย SSH ก็จะทำงานได้เช่นกัน.

    คัดลอกไฟล์ผ่าน SSH

    Secure copy เป็นคำสั่งที่มีประโยชน์มากและใช้งานง่ายมาก รูปแบบพื้นฐานของคำสั่งมีดังนี้:

    scp [ตัวเลือก] original_file destination_file

    นักเตะที่ใหญ่ที่สุดคือวิธีการฟอร์แมตชิ้นส่วนระยะไกล เมื่อคุณกำหนดแอดเดรสไฟล์รีโมตคุณต้องทำดังต่อไปนี้:

    ผู้ใช้ @ เซิร์ฟเวอร์: เส้นทาง / เพื่อ / ไฟล์

    เซิร์ฟเวอร์สามารถเป็น URL หรือที่อยู่ IP ตามด้วยโคลอนจากนั้นพา ธ ไปยังไฟล์หรือโฟลเดอร์ที่เป็นปัญหา ลองดูตัวอย่าง.

    scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt

    คำสั่งนี้มีการตั้งค่าสถานะ [-P] (โปรดทราบว่ามันเป็นตัวพิมพ์ใหญ่ P) สิ่งนี้ทำให้ฉันสามารถระบุหมายเลขพอร์ตแทนค่าเริ่มต้น 22 สิ่งนี้เป็นสิ่งจำเป็นสำหรับฉันเนื่องจากวิธีการกำหนดค่าระบบของฉัน.

    จากนั้นไฟล์ต้นฉบับของฉันคือ“ url.txt” ซึ่งอยู่ในไดเรกทอรีที่ชื่อว่า“ เดสก์ท็อป” ไฟล์ปลายทางอยู่ใน“ ~ / Desktop / url.txt” ซึ่งเหมือนกับ“ /user/yatri/Desktop/url.txt” คำสั่งนี้ถูกเรียกใช้โดยผู้ใช้“ yatri” บนคอมพิวเตอร์ระยะไกล“ 192.168.1.50”.

    เกิดอะไรขึ้นถ้าคุณต้องทำตรงกันข้าม คุณสามารถคัดลอกไฟล์จากเซิร์ฟเวอร์ระยะไกลในทำนองเดียวกัน.

    ที่นี่ฉันได้คัดลอกไฟล์จากโฟลเดอร์“ ~ / Desktop /” ของคอมพิวเตอร์ระยะไกลไปยังโฟลเดอร์“ Desktop” ของคอมพิวเตอร์.

    ในการคัดลอกไดเรกทอรีทั้งหมดคุณจะต้องใช้แฟล็ก [-r] (โปรดทราบว่าเป็นตัวพิมพ์เล็ก r).

    คุณยังสามารถรวมธง แทน

    scp -P -r ...

    คุณสามารถทำได้

    scp -Pr ...

    ส่วนที่ยากที่สุดที่นี่คือความสมบูรณ์ของแท็บอาจไม่ได้ผลเสมอไปดังนั้นการมีเทอร์มินัลอื่นที่มีเซสชัน SSH ทำงานอยู่จึงเป็นประโยชน์.

    SSH และ SCP ที่ไม่มีรหัสผ่าน

    สำเนาที่ปลอดภัยดีมาก คุณสามารถใส่มันลงในสคริปต์และทำการสำรองข้อมูลไปยังคอมพิวเตอร์ระยะไกล ปัญหาคือคุณอาจไม่ได้ใส่รหัสผ่านเสมอไป และขอบอกตามตรงว่ามันเป็นความเจ็บปวดอย่างยิ่งใหญ่ที่คุณต้องใส่รหัสผ่านของคุณในคอมพิวเตอร์ระยะไกลซึ่งคุณสามารถเข้าถึงได้ตลอดเวลา.

    เราสามารถใช้รหัสผ่านโดยใช้ไฟล์คีย์ เราสามารถให้คอมพิวเตอร์สร้างไฟล์สำคัญสองไฟล์ - หนึ่งสาธารณะที่เป็นของเซิร์ฟเวอร์ระยะไกลและหนึ่งส่วนตัวที่อยู่ในคอมพิวเตอร์ของคุณและต้องการความปลอดภัย - และเหล่านี้จะถูกใช้แทนรหัสผ่าน สะดวกสวยใช่มั้ย?

    บนคอมพิวเตอร์ของคุณป้อนคำสั่งต่อไปนี้:

    ssh-keygen -t rsa

    สิ่งนี้จะสร้างสองปุ่มและวางไว้ใน:

    ~ / .ssh /

    ด้วยชื่อ“ id_rsa” สำหรับคีย์ส่วนตัวของคุณและ“ id_rsa.pub” สำหรับกุญแจสาธารณะของคุณ.

    หลังจากป้อนคำสั่งคุณจะถูกขอให้บันทึกตำแหน่ง คุณสามารถกด Enter เพื่อใช้ค่าเริ่มต้นที่กล่าวถึงข้างต้น.

    ถัดไปคุณจะถูกขอให้ป้อนข้อความรหัสผ่าน กด Enter เพื่อเว้นว่างนี้จากนั้นทำอีกครั้งเมื่อขอการยืนยัน ขั้นตอนต่อไปคือการคัดลอกไฟล์กุญแจสาธารณะไปยังคอมพิวเตอร์ระยะไกลของคุณ คุณสามารถใช้ scp เพื่อทำสิ่งนี้:

    ปลายทางสำหรับกุญแจสาธารณะของคุณอยู่บนเซิร์ฟเวอร์ระยะไกลในไฟล์ต่อไปนี้:

    ~ / .ssh / authorized_keys2

    พับลิกคีย์ที่ตามมาสามารถผนวกเข้ากับไฟล์นี้ได้เหมือนกับไฟล์ ~ / .ssh / known_hosts ซึ่งหมายความว่าหากคุณต้องการเพิ่มกุญแจสาธารณะอีกอันสำหรับบัญชีของคุณบนเซิร์ฟเวอร์นี้คุณจะคัดลอกเนื้อหาของไฟล์ id_rsa.pub ที่สองลงในบรรทัดใหม่ในไฟล์ authorized_keys2 ที่มีอยู่.

    ข้อควรพิจารณาด้านความปลอดภัย

    นี่ไม่ใช่ความปลอดภัยน้อยกว่ารหัสผ่าน?

    ในความเป็นจริงไม่ได้จริงๆ รหัสส่วนตัวที่สร้างขึ้นจะถูกเก็บไว้ในคอมพิวเตอร์ที่คุณใช้และจะไม่ถูกถ่ายโอนแม้จะถูกตรวจสอบ คีย์ส่วนตัวนี้จะจับคู่กับคีย์สาธารณะนั้นเท่านั้นและการเชื่อมต่อจะต้องเริ่มจากคอมพิวเตอร์ที่มีคีย์ส่วนตัว RSA นั้นค่อนข้างปลอดภัยและใช้ความยาวบิต 2048 ตามค่าเริ่มต้น.

    ในทางทฤษฎีแล้วมันค่อนข้างคล้ายกันกับการใช้รหัสผ่านของคุณ หากมีใครรู้รหัสผ่านของคุณความปลอดภัยของคุณจะออกไปนอกหน้าต่าง หากใครบางคนมีไฟล์กุญแจส่วนตัวของคุณการรักษาความปลอดภัยจะหายไปกับคอมพิวเตอร์ที่มีรหัส pubic ที่ตรงกัน แต่พวกเขาต้องการการเข้าถึงคอมพิวเตอร์ของคุณเพื่อรับมัน.

    ปลอดภัยกว่านี้ไหม?

    คุณสามารถรวมรหัสผ่านกับไฟล์คีย์ได้ ทำตามขั้นตอนข้างต้น แต่ป้อนข้อความรหัสผ่านที่คาดเดายาก ตอนนี้เมื่อคุณเชื่อมต่อผ่าน SSH หรือใช้ SCP คุณจะต้องใช้ไฟล์กุญแจส่วนตัวที่เหมาะสม เช่นเดียวกับ วลีรหัสผ่านที่เหมาะสม.

    เมื่อคุณป้อนข้อความรหัสผ่านของคุณหนึ่งครั้งคุณจะไม่ถูกถามอีกจนกว่าจะปิดเซสชัน นั่นหมายความว่าครั้งแรกที่คุณ SSH / SCP คุณจะต้องป้อนรหัสผ่านของคุณ แต่การกระทำที่ตามมาทั้งหมดไม่จำเป็นต้องใช้ เมื่อคุณออกจากระบบคอมพิวเตอร์ (ไม่ใช่รีโมท) หรือปิดหน้าต่างเทอร์มินัลคุณจะต้องป้อนอีกครั้ง ด้วยวิธีนี้คุณไม่ได้เสียสละความปลอดภัยอย่างแท้จริง แต่คุณไม่ได้ล่วงเกินรหัสผ่านอยู่ตลอดเวลา.

    ฉันสามารถนำคู่กุญแจสาธารณะ / ส่วนตัวมาใช้ซ้ำได้หรือไม่?

    นี่เป็นความคิดที่แย่จริงๆ หากมีคนพบรหัสผ่านของคุณและคุณใช้รหัสผ่านเดียวกันสำหรับบัญชีทั้งหมดของคุณตอนนี้พวกเขาสามารถเข้าถึงบัญชีเหล่านั้นทั้งหมดได้แล้ว เช่นเดียวกันไฟล์กุญแจส่วนตัวของคุณก็เป็นความลับและสำคัญยิ่ง (สำหรับข้อมูลเพิ่มเติมดูที่วิธีการกู้คืนหลังจากรหัสผ่านอีเมลของคุณถูกบุกรุก)

    เป็นการดีที่สุดที่จะสร้างคู่คีย์ใหม่สำหรับคอมพิวเตอร์ทุกเครื่องและบัญชีที่คุณต้องการเชื่อมโยง ด้วยวิธีนี้หากคีย์ส่วนตัวของคุณถูกดักจับอย่างใดอย่างหนึ่งคุณจะประนีประนอมเพียงหนึ่งบัญชีในคอมพิวเตอร์ระยะไกลเครื่องเดียว.

    นอกจากนี้ยังเป็นสิ่งสำคัญที่จะต้องทราบว่าคีย์ส่วนตัวทั้งหมดของคุณจะถูกเก็บไว้ในที่เดียวกัน: ใน ~ / .ssh / บนคอมพิวเตอร์ของคุณคุณสามารถใช้ TrueCrypt เพื่อสร้างคอนเทนเนอร์ที่ปลอดภัยเข้ารหัสจากนั้นสร้าง symlink ใน ~ / .ssh ไดเรกทอรี / ขึ้นอยู่กับสิ่งที่ฉันทำฉันใช้วิธี super-paranoid super-safe นี้เพื่อทำให้ใจของฉันสบายใจ.


    คุณใช้ SCP ในสคริปต์ใด ๆ บ้างไหม? คุณใช้ไฟล์กุญแจแทนรหัสผ่านหรือไม่? แบ่งปันความเชี่ยวชาญของคุณเองกับผู้อ่านคนอื่น ๆ ในความคิดเห็น!