題 PubkeyAcceptedKeyTypes和ssh-dsa鍵類型


我正在嘗試測試按鍵的順序。系統的一個用戶正在使用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的關鍵類型是什麼?


12
2017-08-26 07:20


起源




答案:


閱讀手冊頁可以幫助您:

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

查詢 ssh 對於指定版本2支持的算法。可用功能   是: cipher (支持對稱密碼), cipher-auth (支持經過身份驗證的加密的對稱密碼), 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 並且在此版本中默認禁用。


14
2017-08-26 11:05



謝謝。你在哪個手冊頁? - jww
“ssh-dsa密鑰類型是ssh-dss,在此版本中默認禁用它。” - 好,謝謝。它是否有默認禁用的原因? DSA2具有112位的安全性(相當於2048位RSA),因此它不像512位或768位模塊那樣弱/受傷。此外,DSS包括RSA和ECDSA,因此它明顯禁用DSA,而不是DSS。 - jww
男子ssh;禁用這些協議背後的原始推理並未公開聲明,但事實是該算法來自NIST,可能需要良好的熵源。我們可以猜測或詢問 security.stackexchange.com - Jakuje
不在Fedora 23 beta的手冊頁中;但是ssh -Q鍵確實有效。不幸的是,我的機器上的鍵現在不受支持。 - mikebabcock
@PavelŠimerda這與DNS有什麼關係?你的意思是DSA?這正是這個 PubkeyAcceptedKeyTypes 選項。如果你用它添加到你的ssh_config +ssh-dss 值,您應該能夠接受服務器上的DSA密鑰。在服務器上,您可以使用 HostKeyAlgorithms 如發行說明中所述: openssh.com/txt/release-7.0 - Jakuje


作為參考,unix.stackexchange.com上發布的答案幫助我們解決了這個問題:

新的openssh版本(7.0+)已棄用DSA密鑰而未使用   默認情況下為DSA密鑰(不在服務器或客戶端上)。鑰匙不是   首選使用,所以如果可以的話,我建議使用   盡可能使用RSA密鑰。

如果您確實需要使用DSA密鑰,則需要明確允許它們   在您的客戶端配置中使用

PubkeyAcceptedKeyTypes + ssh-dss應足以將該行放入   〜/ .ssh / config,因為詳細消息試圖告訴你。

https://unix.stackexchange.com/a/247614/39540


0
2017-10-28 07:48