首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cisco key 5505/6-公钥身份验证不适用于OpenSSH客户端

Cisco key 5505/6-公钥身份验证不适用于OpenSSH客户端
EN

Network Engineering用户
提问于 2022-12-30 20:50:41
回答 2查看 149关注 0票数 2

我没有成功地让公钥身份验证在我们的任何一个思科系统或ASA5506路由器上工作。尽管我做了最好的研究和努力,但我仍然面临着密码的挑战。

更新:在从FrameHowitzer输入后,我尝试使用Putty进行连接,效果很好。因此,问题似乎与OpenSSH_8.9p1有关。

我们的ASA5505s运行ASA 9.2(4),ASA5506s运行ASA 9.8(2)。所有人都有安全加许可证。

5505的典型配置:

代码语言:javascript
复制
ssh scopy enable
no ssh stricthostkeycheck
ssh timeout 60
ssh version 2
ssh key-exchange group dh-group14-sha1
ssh 10.2.0.0 255.255.255.0 TempMgmt
username scp password OpenSezzaMe privilege 15
aaa authentication ssh console LOCAL
username scp attributes
ssh authentication pkf
---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1yc2EAAAADAQABAAAAgQDJf/+4DKo2g64611G5iyK5Qh24ytbCqOlAKlrDp7
AwxpVcrtBUCKu131Sj7B9RCV6QG9Jg4lOGx53zfBxRcE1cJ0p2n26nHwfIRHIhEeS4B8J1
o8DOmAQ8oJWGesadx2Kq4mzEYJ7XrW8lgNTJCe+yJ6MMos6XGVFRqyaaheHUEQ==
---- END SSH2 PUBLIC KEY ----
quit

如果我为ssh启用调试并登录:

代码语言:javascript
复制
Device ssh opened successfully.
SSH0: SSH client: IP = '10.2.0.2'  interface # = 2
SSH: host key initialised
SSH0: starting SSH control process
SSH0: Exchanging versions - SSH-2.0-Cisco-1.25

SSH0: send SSH message: outdata is NULL

server version string:SSH-2.0-Cisco-1.25
SSH0: receive SSH message: 83 (83)
SSH0: client version is - SSH-2.0-OpenSSH_8.9p1 Ubuntu-3

client version string:SSH-2.0-OpenSSH_8.9p1 Ubuntu-3

SSH2 0: SSH2_MSG_KEXINIT sent
SSH2 0: SSH2_MSG_KEXINIT received
SSH2: kex: client->server aes128-ctr hmac-sha1 none
SSH2: kex: server->client aes128-ctr hmac-sha1 none
SSH2 0: expecting SSH2_MSG_KEXDH_INIT
SSH2 0: SSH2_MSG_KEXDH_INIT received
SSH2 0: signature length 143
SSH2: kex_derive_keys complete
SSH2 0: newkeys: mode 1
SSH2 0: SSH2_MSG_NEWKEYS sent
SSH2 0: waiting for SSH2_MSG_NEWKEYS
SSH2 0: newkeys: mode 0
SSH2 0: SSH2_MSG_NEWKEYS receivedSSH(scp): user authen method is 'use AAA', aaa server group ID = 1
SSH(scp): user authen method is 'use AAA', aaa server group ID = 1

SSH2 0: authentication successful for scp
SSH2 0: channel open request
SSH2 0: pty-req request
SSH2 0: requested tty: xterm-256color, height 26, width 140

SSH2 0: env request
SSH2 0: shell request
SSH2 0: shell message received

user authen method is 'use AAA', aaa server group ID = 1在我看来是不对的。我认为不应该使用aaa。但我无法找到定义用户身份验证方法的方法。

我试过:

  • 使用"nopassword“-仍然会被提示输入密码(即"")。
  • 禁用aaa -我仍然被提示只输入密码,当然,它不再有效。
  • 不同客户端键盘长度: 1024,2048,4096
  • 各种ASA键盘长度(至2048年)

我们不再与思科签订服务协议,我不会仅仅为了解决这个棘手的问题而重新建立服务协议。

EN

回答 2

Network Engineering用户

发布于 2022-12-30 23:55:40

从根本上讲,遵循这个指南,它应该能工作。

https://ip-life.net/cisco-asa-ssh-public-key-authentication/

确保您的终端客户端软件被设置为使用SSH密钥作为主要/唯一的身份验证方法,并且它应该这样做。

我模仿了在ASA 5505运行版本9.1.7(32)上的指南,它工作得很好。

我添加了属性配置以将公钥添加到用户名中,并设置客户端使用匹配的私钥和用户名,并将客户端设置为只使用SSH密钥交换,而不是密码或键盘交互,这非常有效。

然后,我删除了ssh和控制台的aaa身份验证行,以便使用本地组。

代码语言:javascript
复制
no aaa authentication ssh console LOCAL

工作得很好。

这是我使用“调试ssh 10”获得的调试输出。

代码语言:javascript
复制
Device ssh opened successfully.
SSH1: SSH client: IP = '10.10.80.69'  interface # = 3
SSH: host key initialised
SSH1: starting SSH control process
SSH1: Exchanging versions - SSH-2.0-Cisco-1.25

SSH1: send SSH message: outdata is NULL

server version string:SSH-2.0-Cisco-1.25
SSH1: receive SSH message: 83 (83)
SSH1: client version is - SSH-2.0-SecureCRT_8.7.2 (x64 build 2214)

client version string:SSH-2.0-SecureCRT_8.7.2 (x64 build 2214)

SSH2 1: SSH2_MSG_KEXINIT sent
SSH2 1: SSH2_MSG_KEXINIT received
SSH2: kex: client->server aes128-ctr hmac-sha1 none
SSH2: kex: server->client aes128-ctr hmac-sha1 none
SSH2 1: expecting SSH2_MSG_KEXDH_INIT
SSH2 1: SSH2_MSG_KEXDH_INIT received
SSH2 1: signature length 271
SSH2: kex_derive_keys complete
SSH2 1: newkeys: mode 1
SSH2 1: SSH2_MSG_NEWKEYS sent
SSH2 1: waiting for SSH2_MSG_NEWKEYS
SSH2 1: newkeys: mode 0
SSH2 1: SSH2_MSG_NEWKEYS receivedSSH(pix): user authen method is 'no AAA', aaa server group ID = 0
SSH(pix): user authen method is 'no AAA', aaa server group ID = 0

SSH2 0: key lookup succeeded
SSH2 1: Sent SSH2_MSG_USERAUTH_PK_OK to clientSSH(pix): user authen method is 'no AAA', aaa server group ID = 0

public key pkt

[really long key stuff]

SSH2 0: key lookup succeeded
SSH2 0: Signature verification succeeded
SSH2 1: Public key authentication succeeded for user (pix)
SSH2 1: authentication successful for pix
SSH2 1: channel open request
SSH2 1: pty-req request
SSH2 1: requested tty: vt100, height 44, width 127

SSH2 1: auth-agent-req@openssh.com request
SSH2 1: shell request
SSH2 1: shell message received

确保您的终端客户端被设置为先尝试key方法,或者只尝试key方法,然后您只需确保键匹配即可。只要ASA上的用户的密钥与客户端上的密钥匹配,那么ASA是否有其他可用的方法就可以工作了。删除AAA配置行将禁用使用本地密码的能力,但是密钥可以工作,因为它是在用户属性中定义的。

票数 2
EN

Network Engineering用户

发布于 2022-12-31 04:29:42

我测试的rsa 5505/6单元,9.2(4)和9.8(2)版本,要求" SSH -rsa“是公共密钥交换可用的签名算法之一,而不管您使用的SSH客户端软件如何。

在默认情况下,Putty显然是可用的。OpenSSH已经开始反对这些老算法中的许多。

OpenSSH客户端的调试显示:

代码语言:javascript
复制
$ ssh -v asa5505-tmp
OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
...
debug1: send_pubkey_test: no mutual signature algorithm
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

我是觉知,ASA550Xs要求不推荐的密钥交换算法和主机密钥算法仅用于OpenSSH连接。但我忽略了公钥算法。

下面是一个用于ASA的ssh配置示例:

代码语言:javascript
复制
# ~/.ssh/config
Host "asa550*"

        # Required for ssh/scp
        KexAlgorithms +diffie-hellman-group14-sha1
        HostKeyAlgorithms +ssh-rsa

        # May be required soon
        # Ciphers +aes128-cbc

        # Required for public key authentication
        PubkeyAcceptedAlgorithms +ssh-rsa

        # Specify a default asa user and dedicated key-pair
        User scp
        IdentityFile ~/.ssh/id_asa

由于所有这些密码器/算法由于安全原因而逐渐被废弃,因此谨慎的做法是将它们的使用限制在仍然需要它们的目标上。同样,您应该使用专用标识(密钥对文件)来帮助进一步减少暴露。

票数 2
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/81028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档