Użyj pliku PPK w terminalu Mac, aby połączyć się ze zdalnym połączeniem przez SSH [zamknięte]

140

Używałem Putty w systemie Windows XP i użyłem pliku .ppk do połączenia się z moimi serwerami Linux (kilka serwerów).

Na serwerach mam następujący folder i plik ~ / .ssh / authoris_keys

Chcę teraz używać komputera Mac do łączenia się przez terminal. Skonfigurowałem zdalne połączenia z serwerami ręcznie i chcę wiedzieć, jak mogę to zrobić, używając pliku ppk lub klucza prywatnego / publicznego w nim zawartego.

Uwaga: już używam logowania klucza prywatnego / publicznego z systemu Windows, więc nie muszę tworzyć nowego klucza za pomocą generatora kluczy, chcę tylko wiedzieć, jak skonfigurować teraz, gdy mam już klucze. (Innymi słowy, mam już autoryzowane listy kluczy na serwerze oraz klucze publiczny i prywatny).

Anand
źródło

Odpowiedzi:

374

Możesz to zrobić sshbezpośrednio z terminala na komputerze Mac, ale musisz użyć .PEMklucza, a nie putty .PPKklucza. Możesz użyć PuttyGen w systemie Windows do konwersji z .PEMna .PPK, ale nie jestem pewien, czy jest odwrotnie.

Możesz także przekonwertować klucz za pomocą puttydla Maca za pomocą portlub brew:

sudo port install putty

lub

brew install putty

Spowoduje to również zainstalowanie puttygen. Aby uzyskać puttygenwyjście do .PEMpliku:

puttygen privatekey.ppk -O private-openssh -o privatekey.pem

Gdy już masz klucz, otwórz okno terminala i:

ssh -i privatekey.pem [email protected]

Klucz prywatny musi mieć ścisłe ustawienia zabezpieczeń, w przeciwnym razie SSH narzeka. Upewnij się, że tylko użytkownik może odczytać klucz.

chmod go-rw privatekey.pem
Purpletoucan
źródło
1
port sudo ?? to na pewno nie istnieje ... przynajmniej w Mavericks
Pedro Luz
23
Można również zainstalować kit stosując napar : brew install putty. Zauważ, że nie używamy sudotutaj;)
GabLeRoux
2
Przydatna odpowiedź !! Dziękuję za to!! Dla tych, którzy nie mają zainstalowanego portu, mogą kliknąć poniższy link, aby zainstalować git: codingsteps.com/installing-and-using-putty-on-mac-os-x
Viraj
3
Co oznacza ten błąd, gdy próbuję uruchomić polecenie puttygen? Wprowadź hasło, aby załadować klucz: Asercja nie powiodła się: (random_active), funkcja random_byte, plik ./../sshrand.c, wiersz 313. Przerwij pułapkę: 6
fastasleep
6
Musisz zainstalować formułę naparu z HEAD, więc brew uninstallnajpierw użyj brew install putty --HEAD. To zadziałało dla mnie.
Dokie
31

Konwertuj PPK na OpenSSh

OS X: Zainstaluj Homebrew, a następnie uruchom

napar zainstalować kit

Umieść klucze w jakimś katalogu, np. Katalogu domowym. Teraz przekonwertuj klucze PPK na pary kluczy SSH: wyszukiwanie w pamięci podręcznej

Aby wygenerować klucz prywatny:

cd ~

puttygen id_dsa.ppk -O private-openssh -o id_dsa

i do wygenerowania klucza publicznego:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

Przenieś te klucze do ~ / .ssh i upewnij się, że uprawnienia są ustawione na prywatne dla twojego klucza prywatnego:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

połączyć się z serwerem ssh

ssh -i ~/.ssh/id_dsa username@servername

Przekierowanie portów, aby połączyć się ze zdalnym serwerem mysql

ssh -i ~/.ssh/id_dsa -L 9001:127.0.0.1:3306 username@serverName
lodowisko
źródło
19

Można to zrobić bez instalowania szpachli na komputerze Mac. Możesz łatwo przekonwertować istniejący plik PPK na plik PEM za pomocą programu PuTTYgen w systemie Windows.

Uruchom PuTTYgen, a następnie załaduj istniejący plik klucza prywatnego za pomocą przycisku Załaduj. Z menu „Konwersje” wybierz „Eksportuj klucz OpenSSH” i zapisz plik klucza prywatnego z rozszerzeniem .pem.

Skopiuj plik PEM na komputer Mac i ustaw go jako tylko do odczytu przez użytkownika:

chmod 400 <private-key-filename>.pem

Wtedy powinieneś być w stanie użyć ssh do połączenia się ze zdalnym serwerem

ssh -i <private-key-filename>.pem username@hostname
dasfrosty
źródło
9
There is a way to do this without installing putty on your Mac. You can easily convert your existing PPK file to a PEM file using PuTTYgen on Windows.Więc najlepszym sposobem na zrobienie tego na Macu jest zrobienie tego w systemie Windows ?!
Roee Gavirel
6
Właściwie @sigi moja odpowiedź była prawdziwie pomocna. Podstawowym celem pytania, jak rozumiem, jest połączenie z komputera Mac na serwer Linux przy użyciu istniejącego pliku .ppk z komputera z systemem Windows. Biorąc pod uwagę, że osoba zadająca pytanie ma dostęp do komputera z systemem Windows, konwersja pliku .ppk do pliku .pem przed skopiowaniem go na komputer Mac jest równie ważnym rozwiązaniem, jak skopiowanie go na komputer Mac i przekonwertowanie go tam. Zasugerowałem to podejście, ponieważ niektórzy ludzie mogą nie chcieć instalować dodatkowego oprogramowania na swoim komputerze Mac, którego w innym przypadku nie potrzebują.
dasfrosty
3
Ta odpowiedź jest bardzo pomocna z dokładnie chronionego powodu: ktoś, kto przechodzi z Windowsa na Maca z istniejącym plikiem ppk, z większym prawdopodobieństwem będzie chciał wyeksportować z Windowsa niż instalować PuTTY na Macu bez żadnego konkretnego celu. To jest dokładnie to, co wybrałem.
trevorsky