ssh -o PreferredAuthentications: "รหัสผ่าน" และ "แป้นพิมพ์แบบโต้ตอบ" ต่างกันอย่างไร


36

ทั้งสองPreferredAuthentications=passwordและPreferredAuthentications=keyboard-interactiveจะขอรหัสผ่านดังนั้นความแตกต่างระหว่างพวกเขาคืออะไร

ฉัน Google ต้องการด้วยคำหลักssh PreferredAuthentications รหัสผ่านแป้นพิมพ์แบบโต้ตอบที่แตกต่างกันแต่ไม่พบคำตอบ

ความแตกต่างเดียวที่ฉันสังเกตเห็นคือสตริงพร้อมท์ ( user@host's password:เทียบกับPassword:):

$ ssh -o PreferredAuthentications=password,keyboard-interactive my-host
root@my-host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).

อัปเดต (2018-04-09):

สำหรับการอ้างอิงได้ง่ายดังต่อไปนี้คือจากSSH: หนังสือ TDGที่กล่าวไว้ในคำตอบของ jouell

"keyboard-interactive"การตรวจสอบผู้ใช้มีวัตถุประสงค์หลักเพื่อรองรับการPAMรับรองความถูกต้องในฝั่งเซิร์ฟเวอร์ มันมีการโต้ตอบตอบสนองต่อความท้าทายหลายครั้งกับผู้ใช้ที่เซิร์ฟเวอร์ส่งแบบสอบถามข้อความไปยังผู้ใช้ประเภทผู้ใช้ในการตอบสนองและกระบวนการนี้สามารถทำซ้ำได้หลายครั้ง ตัวอย่างเช่นคุณอาจกำหนดค่าPAMสำหรับ SSH ด้วยโมดูลที่ดำเนินการตรวจสอบความถูกต้องโดยใช้โทเค็นการรักษาความปลอดภัย RSAหรือรูปแบบรหัสผ่านครั้งเดียว ผู้คนสับสนเพราะสิ่งนี้เพราะโดยค่าเริ่มต้นการ"keyboard-interactive"รับรองความถูกต้องมักจะใช้การรับรองความถูกต้องของรหัสผ่านในรอบการตอบสนองต่อความท้าทายเพียงครั้งเดียวซึ่งเพียงแค่ถามรหัสผ่าน"password"การรับรอง หากคุณไม่ได้ตั้งใจใช้ทั้งสองอย่างเพื่อจุดประสงค์ที่แตกต่างกันคุณอาจต้องการปิดการใช้งานอย่างใดอย่างหนึ่งเพื่อหลีกเลี่ยงความสับสนของผู้ใช้ปลายทาง


1
ดูRFC 4252สำหรับรหัสผ่านรับรองความถูกต้องและRFC 4256สำหรับแป้นพิมพ์แบบโต้ตอบ
pynexj

คำตอบ:


37

โปรโตคอล SSH มีวิธีการรับรองความถูกต้องมากมาย รหัสผ่านและแป้นพิมพ์โต้ตอบเป็นสองของพวกเขา

การตรวจสอบรหัสผ่านเป็นการขอรหัสผ่านเพียงครั้งเดียว ไม่มีการแจ้งเตือนจากเซิร์ฟเวอร์โดยเฉพาะ ดังนั้นจึงเป็นไคลเอนต์ที่ Chooses วิธีการติดป้ายพรอมต์ (ใน"ผู้ใช้รหัสผ่าน @ เจ้าภาพ"พรอมต์อยู่ห่างจาก OpenSSH ลูกค้าเช่นssh, sftpฯลฯ )

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

แม้ว่าในส่วนของกรณีการตรวจสอบแป้นพิมพ์โต้ตอบจะใช้ในการขอรหัสผ่านเดียว "ความลับ" ให้เพื่อให้มีแทบจะไม่แตกต่างกับใด ๆตรวจสอบรหัสผ่าน

นั่นคือความแตกต่างจากมุมมองโปรโตคอล


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

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


2

คุณรู้อยู่แล้วว่า 'รหัสผ่าน' คืออะไร จากระดับสูงมาก (ไม่ใช่สิ่งที่ระดับโปรโตคอลอิฐ) คิดว่า 'แป้นพิมพ์แบบโต้ตอบ' เป็นวิธีการที่คุณใช้ 2FA โดยใช้ Radius และ / หรือ SecurID เป็นต้นมันให้การโต้ตอบที่ท้าทายและตอบสนอง: ssh.comเป็นสิ่งที่ดี คำอธิบายสั้น ๆ เกี่ยวกับมัน มันเป็นขั้นตอนต่อไปเพื่อเน้นแป้นพิมพ์แบบโต้ตอบเป็นร่มที่รหัสผ่านตก ด้วยความเคารพต่อผู้เขียนมันค่อนข้างสับสน

ดูคำจำกัดความของหนังสือหอยทาก เราใช้สิ่งนี้บ่อยครั้งสำหรับกล่องที่ได้รับการป้องกันของ RSA

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