다음과 같이 OpenSSH 형식(내 Mac에서 생성됨)의 SSH 공개 키가 있습니다.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXaDj1YGcvKIhUIgmjV/Mjz8so5O2tdxG9gVlTwCxuFLjcUOsciB5R+hZ28GZtb9tb0p4ZSGd8bLcUnI/tqFlVBfRKhfixbvJlDJkzh1eqzqjgCz7Sgd7vo/9pX4FNmajcdt4nsgMI0Q0NLZOWF0M90gTAkcpfCVyt561IIrHK0MpWPqQbp917X8hfRH23sgo8B471FhN6j3ghS18OcAG8LSzCQ5IjJzyqzRRYLpYVdGVyrqNKV0wBOP7dzmZAcpit4XCtRIESKdQGzPCMcctgh2doBPwFyP1AUcTCrq5skZgik6RjaJAlCm3rxPs0bJDGInWEg0lTnTc7hEmV4tf3 nameofthekey
다음 형식을 사용하여 PKCS#1을 16진수로 변환해야 합니다.
30818602 8180E6B0 25E45C19 54F3DBAD D41C79BF 2054F2C9
33775177 6F60F3B0 9654B03D 02A6A30F B04A5D59 E9BA7846
32059FB6 1157F39B 2C60C890 9B92EFA6 CD566AE2 41621AEB
7BC30538 7065BD5A E3D2380E F1ABF4BF A8EFB0C9 E9BB06E0
8A060E0E 2022047C 009BA3F6 47257E1B B3498941 3C1281BA
C5D64786 377B7426 2B5AA315 41C70201 25
SSH RSA 키 액세스를 위해 내 Huawei OLT 터미널에 연결하세요.
감사해요.
답변1
일관된 형식ASN.130
길이 0x86( )의 시퀀스( )를 포함합니다. 여기에는 길이 0x80( )의 정수( ) 80 86
와 길이 1( )의 정수( )가 차례로 포함됩니다. 이는 신뢰할 수 있는 RSA 공개 키입니다.02
81 80
02
01
SSH 키가 파일에 있다고 가정하면 id_rsa.pub
다음 명령을 사용하여 원하는 형식으로 변환할 수 있습니다.
ssh-keygen -f /dev/stdin -e -m PKCS8 -f id_rsa.pub |
openssl pkey -pubin -outform DER |
od -t x1 -An -w4 |
tr 'a-f' 'A-F' |
tr -d ' ' |
fmt -w 54
(왜 이렇게 복잡해?왜냐하면.)
답변2
나는 저녁을 보냈고 다음 해결책을 찾았습니다.
OpenSSH 공개 키는 다음으로 변환되어야 합니다.PKCS#1 PEM으로 인코딩된 공개 키그것은 base64에 있습니다 :
ssh-keygen -f id_rsa.pub -e -m pem
다음으로base64를 16진수로다음과 같은 변환기:http://tomeko.net/online_tools/base64.php?lang=en
시작 및 끝 표시 없이 문자열을 입력하세요.
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
변환기로 이동하여 변환을 클릭하세요.
예를 들어:
이것을 변환기에 입력합니다.
MIIBCgKCAQEA12g49WBnLyiIVCIJo1fzI8/LKOTtrXcRvYFZU8AsbhS43FDrHIgeUfh2dvBmbW/bW9KeGUhnfGy3FJyP7ahZVQX0SoX4sW7yZQyZM4dXqs6o4As+0oHe76P/aV+BTZmo3HbeJ7IDCNENDS2TMhdDPdIEwJHKXwlcreetSCKxytDKVj6kG6fde1/IX0R9t7IKPAeO9RYTeo94IUtfDnABvC0swkxSIyc8qs0UWC6WFXRlcq6jSldMATj+3c5mQHKYreFwrUSBEinUBszwjHHLYIdnaAT8Bcj9QFHEwS6ubJGYIpOkY2iQJQpt68T7NGyQxiJ1hIGJU503O4RJleLV9wIDAQAB
당신은 이것을 얻습니다 :
3082010A0282010100D76838F560672F2888542209A357F323CFCB28E4EDAD7711BD815953C02C6E14B8DC50EB1C881E51F87676F0666D6FDB5BD29E1948677C6CB7149C8FEDA8595505F45F85F8B16EF2650C99338757AACEA8E00B3ED281DEEFA3FF695F814D99A8DC76DE27B20308D12D0D2D939617433DD204C091CA5F095CADE7AD4822B1CAE0CA563EA41BA7DD7B5FC85F447DB7B20A3C078EF516137A8F78214B5F0E7001BC2D2CC2439223273CAACD14582E9615746572AEA34A574C0138FEDDCE66407298ADE170AD44811229D406CCF08C71CB6087676804FC05C8FD4051C4C2AEAE6C91982293A4636890250A6DEBC4FB346C90C62275848349539D373B844978E2D7F70203010001
Huawei GPON OLT, 스위치 또는 Junipers와 같은 네트워크 장치의 경우 다음과 같이 출력을 6개 열의 8개 문자 그룹으로 편집할 필요가 거의 없습니다. (텍스트 편집기를 통해 클래식 공백과 줄 바꿈 추가)
3082010A 02820101 00D76838 F560672F 28885422 09A357F3
23CFCB28 E4EDAD77 11BD8159 53C02C6E 14B8DC50 EB1C881E
51F87676 F0666D6F DB5BD29E 1948677C 6CB7149C 8FEDA859
5505F44A 85F8B36E F2650C99 338757AA CEA8E00B 3ED281DF
EFA3FF69 5F814D99 A8DC76DE 27B20308 D10D0D2D 93961743
3DD204C0 91CA5F09 5CADE7AD 4822B1CA D0CA563E B41BA7DD
7B5FC85F 447DB7B2 0A3C078E F516137A 8F78214B 5F0E7001
BC2D2CC2 43922327 3CAACD14 582E9615 746572AE A34A574C
0138FEDD CE664072 98FAE170 AD448112 29D416CC F08C71CB
60876768 04FC05C8 FD4051C4 C2AEAE6C 91982293 A4636890
250A6DEB C4FB346C 90C62275 84834953 9D373B84 4995E2D7
F7020301 0001
이제 이 RSA 공개 키를 콘솔에 넣고 저장한 후 RSA 키를 사용자에게 할당한 다음 SSH 개인 키를 사용하여 로그인할 수 있습니다.
답변3
Gilles 레시피는 훌륭하지만 내 Huawei 스위치 5720에서는 작동하지 않습니다.
하지만 약간만 수정하면 작동합니다.
ssh-keygen -e -m pem -f ~/.ssh/id_rsa.pub | \
egrep -v "BEGIN|END" | base64 -d | \
od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 72
답변4
다음 한 줄로 시도해 보세요.
ssh-keygen -e -m pem -f ~/.ssh/id_rsa.pub | sed '1d;$d' | tr -d '\n' | base64 -d | xxd -c 24 -g 4 -u | sed -e "s/^.*: //" -e "s/.\{25\}$//g"
Mac 및 Ubuntu에서 테스트되었으며 Huawei AR120-S 라우터에 적용 가능합니다.
SSH ID를 라우터로 자동으로 가져오는 스크립트에 관심이 있을 수도 있습니다. https://gist.github.com/TerryGeng/f24f07737ea7ff543838dd82bbbba31a