ปิดใช้งานการรับรองความถูกต้องของคีย์สาธารณะของ ssh ชั่วคราวจากลูกค้า


36

มีวิธีการปิดใช้งานการรับรองความถูกต้องของรหัสสาธารณะชั่วคราวเมื่อ ssh'ing และใช้การตรวจสอบรหัสผ่านแทนหรือไม่

ขณะนี้ฉันต้องการเข้าถึงเซิร์ฟเวอร์ระยะไกล แต่ฉันใช้แล็ปท็อปเครื่องอื่นไม่ใช่ของฉัน

ค้นหาลิงค์ที่ฉันพบว่าคำสั่งssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no host1.example.orgไม่ทำงานทุกที่ และใช่มันไม่ทำงานสำหรับฉัน ฉันใช้: OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 มีนาคม 2555

แก้ไข: ฉันพยายามพิมพ์ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no แต่ยังมี "ปฏิเสธสิทธิ์ (publickey)"

ดังนั้นมีการกำหนดค่าเฉพาะที่ต้องทำในเซิร์ฟเวอร์ระยะไกลเพื่อให้คำสั่งทำงานได้หรือไม่ หรือเมื่อคำสั่งนั้นจะทำงานตามที่คาดไว้

ขอบคุณมากสำหรับคำแนะนำ


30
หากคุณติดตามลิงก์อีกครั้งมีบางคนระบุว่าวิธีการของคุณใช้ไม่ได้ แต่สิ่งนี้ทำ:ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no
NickW

@NikW ขอบคุณมากบางทีฉันควรจะพูดถึงมันลองคำสั่งที่คุณเสนอเช่นกันยังคงมี "สิทธิ์การใช้งานถูกปฏิเสธ (publickey)"
Nsukami _

1
เพิ่งพบปัญหานี้เพราะแล็ปท็อปของฉันมีปุ่มเป็นตันและ ssh ลองใช้ทั้งหมดและฉันถูกปฏิเสธก่อนที่จะมีโอกาสแม้แต่ป้อนรหัสผ่าน ขอบคุณที่ถาม.
Dallaylaen

3
@NickW หากคุณใส่ความคิดเห็นของคุณเป็นคำตอบฉันจะโหวตมัน
เขาวงกต

คำตอบ:


9

ดูเหมือนว่าปัญหาการกำหนดค่าทางฝั่งเซิร์ฟเวอร์

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

หากคุณได้รับข้อความแสดงข้อผิดพลาด "Permission denied (publickey)" ดูเหมือนว่าเซิร์ฟเวอร์ของคุณไม่รองรับการตรวจสอบสิทธิ์ด้วยรหัสผ่าน

โดยไม่เห็นไฟล์ / etc / sshd_config มันยากที่จะรู้ แต่การเดาของฉันน่าจะเป็นที่คุณต้องแน่ใจว่ามีบรรทัดต่อไปนี้อยู่:

PasswordAuthentication yes

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

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


5

เพียงแค่สร้างไฟล์ ID ที่ว่างเปล่า

touch $HOME/.ssh/blank

หากคุณออกจากการอนุญาต 640 หรือ 644 ssh จะบ่นว่าการอนุญาตไม่ปลอดภัยเพียงพอและไม่ได้ใช้ หากคุณ chmod เป็น 600 แล้วมันจะถามรหัสผ่าน 3 ครั้งและล้มเหลวเนื่องจากไม่มีรหัสผ่าน ดังนั้นให้ทิ้งไว้ที่ 640 หรือ 644

จากนั้นเมื่อคุณใช้คำสั่งนี้

ssh -i $HOME/.ssh/blank servername-or-ip

คุณสามารถใช้. ssh / config และตั้งค่ารายการโฮสต์เพื่อไม่ใช้คีย์ แต่มันเป็นแบบชั่วคราวน้อยกว่าหรือคุณสามารถสร้างชื่อแทนสำหรับเซิร์ฟเวอร์และเซิร์ฟเวอร์ -nokey แต่มันใช้เวลานานและเจ็บปวดในการดูแลรักษา


5
-i /dev/nullทำงานเกินไปและไม่จำเป็นต้องตรวจสอบสิทธิ์
svvac

ไฟล์ว่าง / โมฆะใช้งานไม่ได้sshบอกว่าLoad key "/dev/null": invalid formatมันจะใช้คีย์อื่น ๆ ที่คุณกำหนดค่าไว้แล้วและไม่สามารถเข้าสู่ระบบได้เนื่องจากการรับรองความถูกต้องล้มเหลวมากเกินไป
Malvineous

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