由于原来使用的rsa key convert下载不到了,不能将公钥转换成DER格式,而老式的VRP只支持DER格式,不支持OPENSSL以及PEM编码格式的公钥。本文介绍了在Linux及puttygen上生成密钥对,并上传公钥到交换机,实现私钥登录的过程。
这种方式的话,用于验证的私钥存放在用户端,并且可以使用密码保护公钥,比使用用户密码认证方式更安全。
一、密钥对的生成,两种方法任选其一。
(一)、在linux下生成密钥对,包括公钥和私钥,并将公钥转换成DER格式。
1. 在当前目录下生成一对密钥对,这种密钥是RSA格式的,包括pkey和pkey.pub, pkey是私钥,pkey.pub是公钥。输入私钥加密密码。在使用Xshell登录时需要的。
ssh-keygen -t rsa -b 1024 -f pkey -C "pkey"
密码 Abc12345678
2. 将公钥进行转换。生成DER格式的公钥
ssh-keygen -e -m pem -f ~/.ssh/pkey.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48
生成的DER格式的公钥:
30818902 818100CC 5A52F1A9 136CFE58 58880A54
BB57F221 8A8A99D7 07F3575C 11BAC728 DD3EE330
0FEB310A C73157D2 E2470F37 9C36FAE0 0F0EBDC7
D064FC3F F2F2549E 9F81CFAD 80551D2C 70E0A94F
B09DF26F 9125D01A 9B4EB8B6 5F85655F DC382C18
96F5EA70 EE80A9D3 4A3DC840 FA49BE28 574973EF
00D8A69E F95818CE BEAC0070 EF955702 03010001
(二)、使用puttygen生成密钥对,并使用linux的ssh-keygen将OpenSSH格式的公钥转换成DER格式
1. 在windows下,使用puttygen生成密钥
复制红色的部分所有内容,这个是公钥,目前的格式是OpenSSH格式的
导出私钥
如果选择save public key,这种格式导出的就是PEM格式的公钥。
2. echo公钥的内容到一个文件,文件名是putty2.pub
[root@centos2 .ssh]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAyfDi5jt5WBu1Hzakrk4/2+dqdTiJcgUQ6IoamH3HR69dyNT2jGdTSbTdnebq3IHPCzOR/8hehvlg3lpHFwrxmATveTTD7ebD+tDopjJrN2ouIl7IyWVcR2Es4BIKtidqMosML0WmHnzNiyR6XcA2DQOyiIxC4uK/ey3XvL+/Qo4EFvIYZt3A+6gRCpiVMxMkzfguqo2Wr7csBPm28iIFG2zl42vJfA9attsHUcOgk2rLL9vEAzO5YZfnhd1sv62A0R4K10pjSZCipu/uczGJSanKhuJIwfOndXMGrrZrQpsuarp16Kw41Ufd0F5P4lCgHa8wkHLrB3S0f31ZflN6NQ== rsa-key-20200409" > putty2.pub
3. 使用ssh-keygen转换格式,转换为DER格式
[root@centos2 .ssh]# ssh-keygen -e -m pem -f ~/.ssh/putty2.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48
30820108 02820101 00C9F0E2 E63B7958 1BB51F36
A4AE4E3F DBE76A75 38897205 10E88A1A 987DC747
AF5DC8D4 F68C6753 49B4DD9D E6EADC81 CF0B3391
FFC85E86 F960DE5A 47170AF1 9804EF79 34C3EDE6
C3FAD0E8 A6326B37 6A2E225E C8C9655C 47612CE0
120AB627 6A328B0C 2F45A61E 7CCD8B24 7A5DC036
0D03B288 8C42E2E2 BF7B2DD7 BCBFBF42 8E0416F2
1866DDC0 FBA8110A 98953313 24CDF82E AA8D96AF
B72C04F9 B6F22205 1B6CE5E3 6BC97C0F 5AB6DB07
51C3A093 6ACB2FDB C40333B9 6197E785 DD6CBFAD
80D11E0A D74A6349 90A2A6EF EE733189 49A9CA86
E248C1F3 A7757306 AEB66B42 9B2E6ABA 75E8AC38
D547DDD0 5E4FE250 A01DAF30 9072EB07 74B47F7D
597E537A 35020125
三种格式的公钥可以相互转换:
ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_pub.pem OPENSSH转PEM
ssh-keygen -f ~/.ssh/id_rsa_pub.pem -i -m RFC4716 > ~/.ssh/id_rsa.pub PEM格式转OPENSSH
ssh-keygen -e -m pem -f ~/.ssh/putty5.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48 OPENSSH转DER
二、 交换机开启stelnet服务。
stelnet server enable
三、 在vty视图下允许ssh
user-interface vty 0 4
authentication-mode aaa
protocol inbound all
user privilege level 15
四、 将客户端的公钥上传到交换机,三种选其一即可
1. 这种格式的密钥是DER格式的
rsa peer-public-key key_pc
public-key-code begin
30818902 818100CC 5A52F1A9 136CFE58 58880A54
BB57F221 8A8A99D7 07F3575C 11BAC728 DD3EE330
0FEB310A C73157D2 E2470F37 9C36FAE0 0F0EBDC7
D064FC3F F2F2549E 9F81CFAD 80551D2C 70E0A94F
B09DF26F 9125D01A 9B4EB8B6 5F85655F DC382C18
96F5EA70 EE80A9D3 4A3DC840 FA49BE28 574973EF
00D8A69E F95818CE BEAC0070 EF955702 03010001
public-key-code end
peer-public-key end
2. 这是OpenSSH格式的密钥
rsa peer-public-key key_pc encoding-type openssh
public-key-code begin
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAnsWKhmdejz30Q5MGIJQucSUt+tSi1XM+jrSCTdCEAJAy
RNx1XPVnq0yQtipHhdJVCo5xZgQkCaQ5JdIN+1ONWfaLUA/75J/TGggKMB74ySEYfqS3OY4ZjOUVnX9c
u6iVF6cxxpYqUHZ7eDr+5yMVPo3pqdqHn1CUruylfEiBAA8= rsa-key
public-key-code end
peer-public-key end
3. 这种是PEM格式的
[HUAWEI]rsa peer-public-key key_pc encoding-type pem
Enter "RSA public key" view, return system view with "peer-public-key end".
[HUAWEI-rsa-public-key]public-key-code begin
Enter "RSA key code" view, return last view with "public-key-code end".
[HUAWEI-rsa-key-code]---- BEGIN SSH2 PUBLIC KEY ----
[HUAWEI-rsa-key-code]AAAAB3NzaC1yc2EAAAADAQABAAABAQDKl7zeaXzt6dmrlHWeAE0VyLlRFoe3mwxW
[HUAWEI-rsa-key-code]mMWCaan00EXtDlOvLt7BoJ30vkWeNLZml7hdIZGgDpLzpef7DnPn8CEkMuiY2XmO
[HUAWEI-rsa-key-code]qkke4raXJ0tRor7NhqFEFnSNHkhHqBQ/5QhibrGtgetJoF5k9tGGxOlM2wTFMHS4
[HUAWEI-rsa-key-code]OTBaf3vOLGBvbJHqlYttrEbBK4wrHgOY8cCdOvKmnWhn+TDfmSaSmpIWgpFic/xN
[HUAWEI-rsa-key-code]2HXURLw3Ht27j2rApM2zrdroU9uGufrbE8yp2M9uwVMMwvVpfEcHkIKZgkM5UH/z
[HUAWEI-rsa-key-code]VPr5D5zSwvfW/z2QHXAP8FiBBIVrlZJx13Pi526O60Mftg1gq8IL
[HUAWEI-rsa-key-code]---- END SSH2 PUBLIC KEY ----
[HUAWEI-rsa-key-code]public-key-code end
[HUAWEI-rsa-public-key]peer-public-key end
在华为的交换机上,新版本的VRP是支持上传openssh格式的密钥的,老版本的VRP,只支持DER格式的。而Linux和puttygen生成的公钥格式,默认都是openssh格式的。需要将它转换成DER格式才能使用。
五、创建用户
1. 创建本地用户
aaa
local-user h3c privilege level 15
local-user h3c service-type ssh
2. 创建SSH用户对应本地用户,并将用户与public-key进行关联
ssh user h3c
ssh user h3c authentication-type rsa
ssh user h3c assign rsa-key key_pc
ssh user h3c service-type stelnet
六、客户端使用putty或者xshell登录,Xshell登录的时候,使用的linux生成的那个私钥,而使用putty登录,需要使用puttygen将私钥转换成ppk格式。 两种公钥的方式,不管是openssh还是perm,都可以使用两个客户端登录,不过客户端使用的私钥格式不同而已。
将Linux下的私钥转换成Putty使用的私钥
运行puttygen.exe-点击Conversions菜单项中的Import key,选择在linux下生成的id_rsa文件,然后点击Save private Key按钮就可以转换成ppk格式。
经过实验检测,使用putty的时候,有时会提示服务器主机签名无效,而xshell一直都是可以的。建议大家使用X-shell来使用免密方式登录交换机。