SSH เป็นเครื่องช่วยชีวิตเมื่อคุณต้องการจัดการคอมพิวเตอร์จากระยะไกล แต่คุณรู้หรือไม่ว่าคุณสามารถอัปโหลดและดาวน์โหลดไฟล์ได้เช่นกัน ใช้คีย์ SSH คุณสามารถข้ามไม่ต้องป้อนรหัสผ่านและใช้สิ่งนี้สำหรับสคริปต์!
กระบวนการนี้ทำงานบน Linux และ Mac OS โดยมีการกำหนดค่าอย่างเหมาะสมสำหรับการเข้าถึง SSH หากคุณใช้ Windows คุณสามารถทำได้ ใช้ Cygwin เพื่อรับฟังก์ชั่นที่คล้ายกับ Linux และด้วยการปรับแต่งเล็กน้อย สสส. ก็จะทำงานเช่นกัน .
การคัดลอกไฟล์ผ่าน SSH
Secure copy เป็นคำสั่งที่มีประโยชน์มากและใช้งานง่ายมาก รูปแบบพื้นฐานของคำสั่งมีดังนี้:
scp [options] original_file destination_file
นักเตะที่ใหญ่ที่สุดคือวิธีการจัดรูปแบบส่วนระยะไกล เมื่อคุณระบุไฟล์ระยะไกลคุณต้องดำเนินการดังต่อไปนี้:
ผู้ใช้ @ เซิร์ฟเวอร์: path / to / file
เซิร์ฟเวอร์สามารถเป็น URL หรือที่อยู่ IP ตามด้วยเครื่องหมายจุดคู่จากนั้นจึงเป็นเส้นทางไปยังไฟล์หรือโฟลเดอร์ที่ต้องการ ลองดูตัวอย่าง
scp –P 40050 เดสก์ท็อป / url.txt [email protected]: ~ / Desktop / url.txt
คำสั่งนี้มีแฟล็ก [-P] (โปรดทราบว่าเป็นตัวพิมพ์ใหญ่ P) สิ่งนี้ทำให้ฉันสามารถระบุหมายเลขพอร์ตแทนค่าเริ่มต้น 22 ได้นี่เป็นสิ่งจำเป็นสำหรับฉันเนื่องจากวิธีที่ฉันกำหนดค่าระบบของฉัน
ต่อไปไฟล์ต้นฉบับของฉันคือ“ url.txt” ซึ่งอยู่ภายในไดเร็กทอรีชื่อ“ Desktop” ไฟล์ปลายทางอยู่ใน“ ~ / Desktop / url.txt” ซึ่งเหมือนกับ“ /user/yatri/Desktop/url.txt” คำสั่งนี้ถูกเรียกใช้โดยผู้ใช้“ yatri” บนคอมพิวเตอร์ระยะไกล“ 192.168.1.50”
เกิดอะไรขึ้นถ้าคุณต้องทำตรงกันข้าม? คุณสามารถคัดลอกไฟล์จากเซิร์ฟเวอร์ระยะไกลได้ในทำนองเดียวกัน
ที่นี่ฉันได้คัดลอกไฟล์จากโฟลเดอร์“ ~ / Desktop /” ของคอมพิวเตอร์ระยะไกลไปยังโฟลเดอร์“ เดสก์ท็อป” ของคอมพิวเตอร์
ในการคัดลอกไดเรกทอรีทั้งหมดคุณจะต้องใช้แฟล็ก [-r] (โปรดทราบว่าเป็นตัวพิมพ์เล็ก r)
คุณยังสามารถรวมแฟล็ก แทน
scp –P –r …
คุณสามารถทำได้
SCP - แต่ ...
ส่วนที่ยากที่สุดคือการทำให้แท็บสมบูรณ์ไม่ได้ผลเสมอไปดังนั้นจึงเป็นประโยชน์ที่จะมีเทอร์มินัลอื่นที่มีเซสชัน 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 ที่สองลงในบรรทัดใหม่บนไฟล์ Author_keys2 ที่มีอยู่
ข้อพิจารณาด้านความปลอดภัย
ปลอดภัยน้อยกว่ารหัสผ่านไม่ใช่หรือ
ในทางปฏิบัติไม่ได้จริงๆ คีย์ส่วนตัวที่สร้างขึ้นจะถูกเก็บไว้ในคอมพิวเตอร์ที่คุณใช้และจะไม่มีการโอนและไม่ได้รับการยืนยันด้วยซ้ำ คีย์ส่วนตัวนี้จับคู่กับคีย์สาธารณะเพียงอันเดียวเท่านั้นและการเชื่อมต่อจะต้องเริ่มจากคอมพิวเตอร์ที่มีคีย์ส่วนตัว RSA ค่อนข้างปลอดภัยและใช้ความยาว 2048 บิตตามค่าเริ่มต้น
ในทางทฤษฎีการใช้รหัสผ่านของคุณก็ค่อนข้างคล้ายกัน หากมีคนรู้รหัสผ่านของคุณระบบความปลอดภัยของคุณจะหายไปจากหน้าต่าง หากมีคนมีไฟล์คีย์ส่วนตัวของคุณการรักษาความปลอดภัยจะหายไปสำหรับคอมพิวเตอร์ทุกเครื่องที่มีคีย์สาธารณะที่ตรงกัน แต่พวกเขาต้องการเข้าถึงคอมพิวเตอร์ของคุณเพื่อรับมัน
ปลอดภัยกว่านี้ได้ไหม
คุณสามารถรวมรหัสผ่านกับไฟล์สำคัญได้ ทำตามขั้นตอนด้านบน แต่ป้อนข้อความรหัสผ่านที่รัดกุม ตอนนี้เมื่อคุณเชื่อมต่อผ่าน SSH หรือใช้ SCP คุณจะต้องมีไฟล์คีย์ส่วนตัวที่เหมาะสม เช่นเดียวกับ รหัสผ่านที่เหมาะสม
เมื่อคุณป้อนรหัสผ่านหนึ่งครั้งคุณจะไม่ถูกถามอีกจนกว่าคุณจะปิดเซสชัน นั่นหมายความว่าในครั้งแรกที่คุณ SSH / SCP คุณจะต้องป้อนรหัสผ่านของคุณ แต่การดำเนินการที่ตามมาทั้งหมดไม่จำเป็นต้องใช้ เมื่อคุณออกจากระบบคอมพิวเตอร์ของคุณ (ไม่ใช่รีโมท) หรือปิดหน้าต่างเทอร์มินัลของคุณคุณจะต้องป้อนอีกครั้ง ด้วยวิธีนี้คุณไม่ได้สูญเสียความปลอดภัย แต่คุณก็ไม่ถูกคุกคามเรื่องรหัสผ่านตลอดเวลา
ฉันสามารถใช้คู่คีย์สาธารณะ / ส่วนตัวซ้ำได้หรือไม่
นี่เป็นความคิดที่แย่จริงๆ หากมีคนพบรหัสผ่านของคุณและคุณใช้รหัสผ่านเดียวกันสำหรับบัญชีทั้งหมดของคุณตอนนี้พวกเขาสามารถเข้าถึงบัญชีเหล่านั้นทั้งหมดได้ ในทำนองเดียวกันไฟล์คีย์ส่วนตัวของคุณก็เป็นความลับและสำคัญเช่นกัน (สำหรับข้อมูลเพิ่มเติมโปรดดูที่ วิธีการกู้คืนหลังจากรหัสผ่านอีเมลของคุณถูกบุกรุก )
วิธีที่ดีที่สุดคือสร้างคู่คีย์ใหม่สำหรับคอมพิวเตอร์ทุกเครื่องและบัญชีที่คุณต้องการเชื่อมโยง ด้วยวิธีนี้หากคีย์ส่วนตัวของคุณถูกจับได้คุณจะบุกรุกเพียงบัญชีเดียวในคอมพิวเตอร์ระยะไกลเครื่องเดียว
สิ่งสำคัญมากที่จะต้องทราบว่าคีย์ส่วนตัวทั้งหมดของคุณจะถูกเก็บไว้ที่เดียวกัน: ใน ~ / .ssh / บนคอมพิวเตอร์ของคุณคุณสามารถ ใช้ TrueCrypt เพื่อสร้างคอนเทนเนอร์ที่ปลอดภัยและเข้ารหัสแล้ว สร้าง symlinks ในไดเรกทอรี ~ / .ssh / ของคุณ ขึ้นอยู่กับสิ่งที่ฉันกำลังทำฉันใช้สิ่งนี้ หวาดระแวงสุด ๆ วิธีที่ปลอดภัยเป็นพิเศษเพื่อให้ฉันสบายใจ
คุณใช้ SCP ในสคริปต์หรือไม่? คุณใช้ไฟล์คีย์แทนรหัสผ่านหรือไม่? แบ่งปันความเชี่ยวชาญของคุณกับผู้อ่านคนอื่น ๆ ในความคิดเห็น!