'ไม่มีรหัสผ่าน' หมายถึงอะไรในไฟล์ sshd_config


118

ฉันเพิ่งติดตั้ง Ubuntu 14.04 บนเซิร์ฟเวอร์ของฉันและฉันตั้งค่าไฟล์ config ทั้งหมดของฉันเมื่อฉันเจอสิ่งนี้ในsshd_configไฟล์ของฉัน:

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

นี่ทำให้ฉันกังวลมาก ฉันคิดว่าเป็นไปได้ว่ามีใครบางคนสามารถลงชื่อเข้าใช้เซิร์ฟเวอร์ของฉันในฐานะรูทโดยไม่มีรหัสผ่าน

ฉันพยายามเชื่อมต่อกับเซิร์ฟเวอร์ในฐานะรูทผ่าน:

johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:  

ฉันป้อนรหัสผ่านเปล่าและไม่ได้อนุญาตให้ฉันซึ่งเป็นการผ่อนปรน ดังนั้นคำถามของฉันคือ: ไม่มีรหัสผ่านหมายความว่าอะไรและทำไมจึงเป็นค่าเริ่มต้นใน Ubuntu 14.04

คำตอบ:


142

จากmanpage :

PermitRootLogin

ระบุว่ารูทสามารถล็อกอินโดยใช้ssh (1) อาร์กิวเมนต์ต้องเป็น "ใช่", "ไม่มีรหัสผ่าน", "บังคับคำสั่งเท่านั้น" หรือ "ไม่" ค่าเริ่มต้นคือ "ใช่"

หากตั้งค่าตัวเลือกนี้เป็น“ ไม่มีรหัสผ่าน” การตรวจสอบรหัสผ่านจะถูกปิดใช้งานสำหรับรูท

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

หากตัวเลือกนี้ถูกตั้งค่าเป็น "ไม่" รูทจะไม่ได้รับอนุญาตให้เข้าสู่ระบบ

ดังนั้นwithout-passwordอนุญาตให้ล็อกอินรูทด้วยการพิสูจน์ตัวตนคีย์สาธารณะเท่านั้น สิ่งนี้มักใช้กับเชลล์สคริปต์และงานอัตโนมัติ


2
การไม่อนุญาตให้ใช้ 'การล็อกอินรูท' โดยใช้รหัสผ่านถือว่ามีความปลอดภัยมากกว่าการอนุญาต ที่กล่าวว่าคุณไม่ควรลงชื่อเข้าใช้รูทเลยเว้นแต่จะไม่มีวิธีการอื่น (sudo เป็นต้น) ใช้งานได้
david6

5
ดังที่คุณเห็นในขณะที่หน้า man ระบุค่าเริ่มต้นคือ "ใช่" Ubuntu ได้ตั้งค่าเริ่มต้นเป็น "ไม่มีรหัสผ่าน"
ferrouswheel

36
ดังนั้นwithout-passwordวิธีการทั้งหมดที่อนุญาตยกเว้นรหัสผ่าน? ดูเหมือนว่า "ได้รับอนุญาตให้เข้าสู่ระบบโดยไม่ต้องใช้รหัสผ่าน"
โกติเยร์

1
"การเข้าถึงรูททั้งหมดควรได้รับการอำนวยความสะดวกผ่านการล็อกอินท้องถิ่นด้วย ID ผู้ใช้ที่ไม่ซ้ำใครและสามารถระบุตัวตนได้และจากนั้นผ่านคำสั่ง su เมื่อได้รับการพิสูจน์ตัวตนแล้วการล็อกอินรูทโดยตรงนั้นไม่ปลอดภัยอย่างยิ่ง - คู่มือ CIS IBM AIX
Dominik Antal

22
PermitRootLogin now accepts an argument of 'prohibit-password' as a less-ambiguous synonym of 'without-password'.
endolith

16

จริงๆแล้วการตั้งค่านี้ไม่ทำอะไรเลยหากคุณใช้การพิสูจน์ตัวตนแบบ PAM ที่ด้านล่างของsshd_configไฟล์กำหนดค่าคุณจะพบกับ:

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

การตั้งค่าเริ่มต้นบน Ubuntu คือการใช้การรับรองความถูกต้อง PAM:

UsePAM yes

1
จากประสบการณ์โดยย่อของฉันแม้การตั้งค่านี้noจะไม่ทำให้PermitRootLogin without-passwordใช้งานได้จริงก็ตาม! :(
cregox

1
@cregox หากคุณใช้ระบบเดสก์ท็อปทั่วไปคุณต้องทำssh-copy-id -i ~/.ssh/id_rsa.pub user@ipและสร้าง~/.ssh/authorized_keysไว้ในใจหากคุณไม่สามารถเข้าสู่ระบบได้เนื่องจากรูทคุณจะไม่สร้างไฟล์นี้ใน /root/.ssh/ แต่จะใช้งานได้หากคุณคัดลอก ไฟล์ที่นั่น
Rutrus

3

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

นี่คือตัวอย่างการใช้พร้อมเพรียงสำหรับการซิงโครไนซ์: https://serverfault.com/questions/341985/remotely-use-root-over-ssh-for-unison


2
จะไม่เข้าสู่ระบบด้วยผู้ใช้ปกติ (โดยใช้คีย์การเข้ารหัสลับที่เป็นไปได้มากที่สุด) และการมีอยู่ในsudoกลุ่มช่วยให้คุณทำเช่นนี้ได้หรือไม่?
NS du Toit

2

ในรุ่นที่ใหม่กว่าของ sshd "ไม่มีรหัสผ่าน" ถูกเปลี่ยนเป็น "ห้ามรหัสผ่าน"

ทั้งสองเวอร์ชันใช้งานได้ดีที่สุดในการใช้ "ห้ามรหัสผ่าน" ถ้าทำได้: อธิบายได้ดีกว่า

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