PubkeyAcceptedKeyTypes และชนิดคีย์ ssh-dsa


12

ฉันพยายามทดสอบลำดับที่มีการลองใช้กุญแจ หนึ่งในผู้ใช้ระบบกำลังใช้ DSA ดังนั้นฉันพยายามทดสอบเป็นตัวเลือก Bad key typesฉันได้รับ

$ ssh -vv -p 1522 jwalton@192.168.1.11
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /Users/jwalton/.ssh/config
/Users/jwalton/.ssh/config line 2: Bad key types 'ssh-ed25519,ecdsa-sha2-nistp256,ssh-dsa,ssh-rsa'.

ssh-dsaฉันแคบลงไป อ้างอิงถึงssh_config(5) (เป็นส่วนหนึ่งของจริงsshd_config(5)แต่มีการระบุว่าเป็นssh_configคุณลักษณะใหม่ในบันทึกย่อประจำรุ่น OpenSSH 7.0):

 The -Q option of ssh(1) may be used to list supported key types.

อย่างไรก็ตามฉันไม่สามารถใช้งานได้:

riemann::~$ ssh -Q 
/usr/local/bin/ssh: option requires an argument -- Q
riemann::~$ ssh -Q dsa
Unsupported query "dsa"
riemann::~$ ssh -Q ssh-dsa
Unsupported query "ssh-dsa"
riemann::~$ ssh -Q ed25529
Unsupported query "ed25529"
riemann::~$ ssh -Q ssh-ed25529
Unsupported query "ssh-ed25529"
riemann::~$ ssh -Q PubkeyAcceptedKeyTypes
Unsupported query "PubkeyAcceptedKeyTypes"

มีวิธีใช้ssh -Qตัวเลือกอย่างไร?

คีย์ชนิดของ ssh-dsa คืออะไร?

คำตอบ:


14

การอ่านหน้าคู่มือจะช่วยให้คุณ:

 -Q cipher | cipher-auth | mac | kex | key | protocol-version

เคียวรีsshสำหรับอัลกอริทึมที่รองรับสำหรับเวอร์ชันที่ระบุ 2 คุณลักษณะที่มีคือ: cipher(สนับสนุน symmetric ciphers), cipher-auth(ciphers สมมาตรที่รองรับที่รองรับการเข้ารหัสที่รับรองความถูกต้อง), mac(รหัสข้อความที่รองรับ), kex(อัลกอริธึมการแลกเปลี่ยนข้อความkey) protocol-version(รุ่นโปรโตคอล SSH ที่รองรับ)

การโทรssh -Q keyให้สิ่งที่คุณต้องการ:

ssh -Q key
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com

นี่เป็นคุณสมบัติใหม่ใน openssh-7.0 ดังนั้นอย่าลืมว่ามันไม่จำเป็นต้องทำงานในเวอร์ชั่นเก่ากว่า

ssh-dsaประเภทคีย์คือssh-dssและมันถูกปิดใช้งานโดยค่าเริ่มต้นในรุ่นนี้


ขอบคุณ คุณมีหน้าคนอะไร
jww

2
"ประเภทคีย์ ssh-dsa คือ ssh-dss และถูกปิดใช้งานโดยค่าเริ่มต้นในรุ่นนี้" - โอเคขอบคุณ. มีเหตุผลที่ปิดใช้งานโดยค่าเริ่มต้นหรือไม่ DSA2 มีความปลอดภัย 112 บิต (เทียบเท่ากับ 2048- บิต RSA) ดังนั้นจึงไม่อ่อนแอ / บาดเจ็บเหมือนแบบ 512 บิตหรือ 768 บิต นอกจากนี้ DSS ยังรวม RSA และ ECDSA ด้วยดังนั้นจึงเป็นการปิดใช้งาน DSA อย่างชัดเจนไม่ใช่ DSS
jww

1
ไม่ได้อยู่ใน man pages ที่นี่ด้วย Fedora 23 beta; แต่คีย์ ssh -Q ทำงานได้ น่าเสียดายที่ตอนนี้ปุ่มบนเครื่องของฉันไม่รองรับ
mikebabcock

3
@ PavelŠimerdaสิ่งนี้เกี่ยวข้องกับ DNS อย่างไร คุณหมายถึง DSA นี่คือสิ่งที่เป็นPubkeyAcceptedKeyTypesตัวเลือกสำหรับ หากคุณเพิ่มลงใน ssh_config ของคุณด้วย+ssh-dssค่าคุณควรจะยอมรับคีย์ DSA บนเซิร์ฟเวอร์ บนเซิร์ฟเวอร์คุณสามารถใช้HostKeyAlgorithmsตามที่อธิบายไว้ในบันทึกประจำรุ่น: openssh.com/txt/release-7.0
Jakuje

1
@DavidFaure มันไม่ได้อธิบายว่าทำไมมันถูกปิดการใช้งานมันก็บอกว่ามันเป็นคนพิการและวิธีจัดการกับมัน
Jakuje

0

สำหรับการอ้างอิงคำตอบที่โพสต์ใน unix.stackexchange.com ช่วยเราแก้ไขปัญหา:

openssh เวอร์ชั่นใหม่ (7.0+) เลิกใช้คีย์ DSA และไม่ได้ใช้คีย์ DSA ตามค่าเริ่มต้น (ไม่ใช่บนเซิร์ฟเวอร์หรือไคลเอนต์) ไม่แนะนำให้ใช้กุญแจอีกต่อไปดังนั้นหากทำได้ฉันแนะนำให้ใช้ปุ่ม RSA หากทำได้

หากคุณต้องการใช้คีย์ DSA จริงๆคุณต้องอนุญาตให้ใช้คีย์เหล่านี้ในการกำหนดค่าไคลเอนต์ของคุณโดยใช้

PubkeyAcceptedKeyTypes + ssh-dss น่าจะเพียงพอที่จะใส่บรรทัดนั้นใน ~ / .ssh / config เนื่องจากข้อความ verbose พยายามบอกคุณ

/unix//a/247614/39540

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