2016-01-04 56 views
5

Szukam tego przez długi czas.Uzyskaj klucz publiczny z serwera SSH

Potrzebuję wyodrębnić i uzyskać moduł i wykładnik z serwera SSH.

Na przykład, wiem, że na serwerze xxx.xxx.xxx.xxx jest uruchomiony ssh (nie mogę połączyć się z tym serwerem/ping), ale nie wiem, nazwę użytkownika i hasło, więc nie mogę się zalogować.

Muszę uzyskać moduł i wykładnik publicznego klucza RSA tego serwera.

Znalazłem, że ssh-keyscan może uzyskać moduł + wykładnik (z dokumentacji), ale tylko wtedy, gdy ssh-rsa1 jest używany. Jeśli spróbuję uzyskać klucz publiczny ssh-rsa (2) za pomocą ssh-keyscan, nie mogę odzyskać modułu wyjściowego i wykładnika.

Czy to możliwe?

+0

Przepraszamy, ale nie jest jasne, o co prosisz. Co chcesz z kluczem publicznym przechowywanym na serwerze? Nie da ci dostępu do tego systemu. Ponieważ potrzebujesz do tego klucza prywatnego. – arkascha

+0

Wiem. To jest dla mojej pracy licencjackiej. Potrzebujesz zebrać klucze publiczne i ... :) – user3157560

+1

Cóż, po prostu utwórz trochę. – arkascha

Odpowiedz

8

Pewnie, że możesz!

Pobierz klucz publiczny z github i zapisać go do pliku github.pub:

ssh-keyscan -t rsa github.com | sed "s/^[^ ]* //" > github.pub 

Konwersja SSH formacie klucza publicznego w formacie X.509 publicznego klucza:

ssh-keygen -f github.pub -e -m pem > github.pem 

kodowania składni ASN.1 klucza, aby uzyskać moduł klucza publicznego i wykładnik:

cat github.pem | sed "/--/d" | openssl asn1parse | grep "INTEGER" | sed "s/.*://" 

Wynik:

AB603B8511A67679BDB540DB3BD2034B004AE936D06BE3D760F08FCBAADB4EB4EDC3B3C791C70AAE9A74C95869E4774421C2ABEA92E554305F38B5FD414B3208E574C337E320936518462C7652C98B31E16E7DA6523BD200742A6444D83FCD5E1732D03673C7B7811555487B55F0C4494F3829ECE60F94255A95CB9AF537D7FC8C7FE49EF318474EF2920992052265B0A06EA66D4A167FD9F3A48A1A4A307EC1EAAA5149A969A6AC5D56A5EF627E517D81FB644F5B745C4F478ECD082A9492F744AAD326F76C8C4DC9100BC6AB79461D2657CB6F06DEC92E6B64A6562FF0E32084EA06CE0EA9D35A583BFB00BAD38C9D19703C549892E5AA78DC95E250514069 
23 

Pierwsza linia to moduł, a druga linia to wykładnik.

+0

wielkie dzięki! Robiłem to cały dzień, ale moim problemem było to, że parsuję z ssh-keygen -f .... ciąg bez ssh-rsa (tylko ostatni klucz zakodowany na base64): "(i nic nie działało – user3157560

+1

Następnym razem wspomnij wszystkie kroki, które wypróbowałeś w pytaniu. – divanov