Android

วิธีการตั้งค่าล็อกอิน ssh แบบไม่มีรหัสผ่าน

เวก้าผับ ฉบับพิเศษ

เวก้าผับ ฉบับพิเศษ

สารบัญ:

Anonim

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

ในบทช่วยสอนนี้เราจะแสดงวิธีตั้งค่าการรับรองความถูกต้องโดยใช้คีย์ SSH รวมถึงวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ Linux ของคุณโดยไม่ต้องป้อนรหัสผ่าน

ตั้งค่า SSH Passwordless Login

ในการตั้งค่าการเข้าสู่ระบบ SSH ที่ไม่มีรหัสผ่านใน Linux สิ่งที่คุณต้องทำคือการสร้างรหัสการรับรองความถูกต้องสาธารณะและผนวกเข้ากับไฟล์โฮสต์ ~/.ssh/authorized_keys ระยะไกล

ขั้นตอนต่อไปนี้จะอธิบายกระบวนการตั้งค่าการล็อกอิน SSH ที่ไม่มีรหัสผ่าน:

  1. ตรวจสอบคู่คีย์ SSH ที่มีอยู่

    ก่อนที่จะสร้างคู่คีย์ SSH ใหม่ก่อนอื่นให้ตรวจสอบว่าคุณมีคีย์ SSH บนเครื่องไคลเอ็นต์ของคุณหรือไม่เพราะคุณไม่ต้องการเขียนทับคีย์เดิมของคุณ

    รันคำสั่ง ls ต่อไปนี้เพื่อดูว่ามีคีย์ SSH ที่มีอยู่หรือไม่:

    ls -al ~/.ssh/id_*.pub

    หากมีคีย์ที่มีอยู่คุณสามารถใช้คีย์เหล่านั้นและข้ามขั้นตอนถัดไปหรือสำรองคีย์เก่าและสร้างคีย์ใหม่

    สร้างคู่คีย์ SSH ใหม่

    คำสั่งต่อไปนี้จะสร้างคู่คีย์ SSH 4096 บิตใหม่พร้อมที่อยู่อีเมลของคุณเป็นความคิดเห็น:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    กด Enter เพื่อยอมรับตำแหน่งไฟล์เริ่มต้นและชื่อไฟล์:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

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

    Enter passphrase (empty for no passphrase):

    การโต้ตอบทั้งหมดมีลักษณะดังนี้:

    เพื่อให้แน่ใจว่ามีการสร้างคีย์ SSH คุณสามารถแสดงรายการคีย์ส่วนตัวและพับลิกใหม่ของคุณด้วย:

    ls ~/.ssh/id_*

    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

    คัดลอกกุญแจสาธารณะ

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

    วิธีที่ง่ายที่สุดในการคัดลอกกุญแจสาธารณะของคุณไปยังเซิร์ฟเวอร์ของคุณคือการใช้คำสั่งที่เรียกว่า ssh-copy-id บนเครื่องเทอร์มินัลประเภทเครื่องของคุณ:

    ssh-copy-id remote_username@server_ip_address

    คุณจะได้รับแจ้งให้ป้อนรหัสผ่าน remote_username :

    remote_username@server_ip_address's password:

    เมื่อผู้ใช้รับรองความถูกต้องแล้วรหัสสาธารณะจะถูกผนวกเข้ากับไฟล์ authorized_keys ผู้ใช้ระยะไกลและการเชื่อมต่อจะถูกปิด

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

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    เข้าสู่ระบบเซิร์ฟเวอร์ของคุณโดยใช้คีย์ SSH

    หลังจากทำตามขั้นตอนข้างต้นแล้วคุณควรจะสามารถเข้าสู่เซิร์ฟเวอร์ระยะไกลได้โดยไม่ต้องใส่รหัสผ่าน

    ในการทดสอบให้ลองลงชื่อเข้าใช้เซิร์ฟเวอร์ของคุณผ่าน SSH:

    ssh remote_username@server_ip_address

    หากทุกอย่างเป็นไปด้วยดีคุณจะเข้าสู่ระบบทันที

ปิดใช้งานการรับรองความถูกต้องรหัสผ่าน SSH

เพื่อเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ของคุณคุณสามารถปิดการใช้งานการตรวจสอบรหัสผ่านสำหรับ SSH

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

บทเรียนต่อไปนี้อธิบายวิธีกำหนดค่าการเข้าถึง sudo:

  1. ล็อกอินเข้าสู่เซิร์ฟเวอร์ระยะไกลของคุณด้วยคีย์ SSH ไม่ว่าจะเป็นผู้ใช้ที่มีสิทธิ์ sudo หรือรูท:

    ssh sudo_user@server_ip_address

    เปิดไฟล์การกำหนดค่า SSH /etc/ssh/sshd_config ค้นหาคำสั่งต่อไปนี้และแก้ไขดังต่อไปนี้:

    / etc / SSH / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    เมื่อเสร็จแล้วให้บันทึกไฟล์และเริ่มบริการ SSH ใหม่

    บน Ubuntu หรือเซิร์ฟเวอร์ Debian ให้รันคำสั่งต่อไปนี้:

    sudo systemctl restart ssh

    บนเซิร์ฟเวอร์ CentOS หรือ Fedora ให้รันคำสั่งต่อไปนี้:

    sudo systemctl restart sshd

ข้อสรุป

ในบทช่วยสอนนี้คุณได้เรียนรู้วิธีตั้งค่าการรับรองความถูกต้องโดยใช้คีย์ SSH ช่วยให้คุณสามารถเข้าสู่เซิร์ฟเวอร์ระยะไกลของคุณโดยไม่ต้องให้รหัสผ่านผู้ใช้ คุณสามารถเพิ่มรหัสเดียวกันในหลาย ๆ การให้บริการระยะไกล

นอกจากนี้เรายังแสดงวิธีปิดการใช้งานการตรวจสอบรหัสผ่าน SSH และเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ของคุณ

ความปลอดภัยของ ssh