使用SSH登錄交換機(RSA方式)

由於原來使用的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格式的公鑰。

clipboard

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格式。

clipboard


經過實驗檢測,使用putty的時候,有時會提示服務器主機簽名無效,而xshell一直都是可以的。建議大家使用X-shell來使用免密方式登錄交換機。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章