Cisco · Public key · SSH

Cisco IOS device configure SSH public-key authentication

Author: Kevin Zhang
概念说明:
SSH public Key类型:
-RSA key use with SSH1 and SSH2 protocol
-DSA key use with SSH2 protocol
*Note: DSA的安全性较RSA的弱
Key格式:
公钥 :SSH.com使用的RFC 4716指定的公钥格式,而OpenSSH使用了另外的格式
私钥 : SSH v1私钥只有一种标准格式,但SSH v2私钥格式很多,OpenSSH、ssh.com、puty、winscp格式不同且不兼容
一、key的生成
1. 通过Secure CRT生成key


密钥类型有两种: DSA、RSA. Secure CRT提示多种服务器不支持RSA, Cisco IOS只支持RSA
通行短语为对私钥加密的密码,注释为提示输入密码时的提示,两项均为可为空。


为了更好的兼容性和适用性,选择了 OpenSSH 密钥格式,选择保存私钥的位置:
点击’Finish’后会弹出对话框:
如果选择’Yes’,会影响’快速连接’中的公钥指向保存的文件:
2. 使用PuTTYgen生成key (guide from winscp)


key passphrase : 输入对密钥加密的密码
key comment: 提示输入密码时的提示
*Note: 默认生成的是PuTTY’s native format (*.PPK), 通过Conversions菜单保存为ssh.com或openssh格式的private key
二、配置Cisco设备
1. Enable SSH
ip domain-name publickey.com //配置domain name
crypto key generate rsa //通过配置生成SSH key
line vty 0 4 //设置vty的login mode
   transport input ssh //Cisco与3com的认证方式差异,3com可以设置telnet或ssh用户,而Cisco是基于session的
2. IOS 15 SSH使用public-key (Similar with 12.4T)
ip domain-name publickey.com
ip ssh version 2

crypto key generate rsa label ssh module 1024
ip ssh rsa keypair-name ssh
line vty 0 4
transport input ssh
  exit

ip ssh pubkey-chain
username kzhang //配置使用证书的登陆的用户名
key-string //回车后,是类似banner的配置方式,直到输入exit才结束key配置
xxxxxx //复制CRT、PuTTY生成的RSA的public key,复制的内容有误会被提示: ‘%SSH: Failed to decode the Key Value’;CRT:直接将整个文本内容复制过来即可,PuTTY:只copy文本的一部分:
exit //通过exit退出public key设置
三、验证
1. ‘show ip ssh’ in IOS 15


R2#show ip ssh


SSH Enabled - version 2.0


Authentication timeout: 120 secs; Authentication retries: 3


Minimum expected Diffie Hellman key size : 1024 bits


IOS Keys in SECSH format(ssh-rsa, base64 encoded):


ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCkhc93+j/D2RdJFhRn9NWkfoW+LE8WvERSX9wnygVp


bVMxjlov+PP6Fe4OlppueLtRtdrAVIwROeyE4hxf/bCMf8efUylIqMGx4aI64m+V/l2rbFKEECdDXUHU


LI/cNkdwu12h1C0fw4asGuhq4RQkjH53AgVgdQvk3yi37Rf4fQ==

2.  SecureCRT

以SSH的’快速连接’为例:
  • 首先设置username
  • Step 1: 设置’公钥’项为高优先级
  • Step 2: 点击’属性’配置登陆的公钥
  • Step 3: 点击’使用会话公钥设置’
  • Step 4: 点击 … 指定私钥文件,CRT支持openssh格式,不支持ssh.com格式
设置好后,点击连接
3. PuTTY
Session页面指定device IP:
Connection -> SSH -> Auth项指定私钥
*Note: PuTTY只支持ppk格式,不支持openssh和ssh.com格式

    问题: 15.0 IOS配置完成后,尝试使用putty登录时出现Error “Server refused our key”,在设备执行 “Debug ip ssh detail”,发现有error :


invalid old access type configured - 0x01

尝试配置:

configure terminal


line vty 0 4


login local


exit

后,问题解决。
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s