Используйте файл PPK в терминале Mac для подключения к удаленному подключению через SSH [закрыто]

147

Я использовал Putty в Windows XP и использовал файл .ppk для подключения к своим серверам Linux (несколько серверов).

На серверах у меня есть следующая папка и файл ~ / .ssh / authorized_keys

Теперь я хочу использовать Mac для подключения через терминал. Я настроил удаленные подключения к серверам вручную и хочу знать, как я могу настроить, используя файл ppk или закрытый / открытый ключ в нем.

Обратите внимание: я уже использую вход в систему с закрытым / открытым ключом из Windows, поэтому мне не нужно создавать новый ключ с помощью генерации ключей, я просто хочу знать, как настроить, когда у меня уже есть ключи. (Другими словами, у меня уже есть списки авторизованных ключей на сервере, а также открытый и закрытый ключи).

Ананд
источник

Ответы:

385

Вы можете sshпрямо из терминала на Mac, но вам нужно использовать .PEMключ, а не putty .PPKключ. Вы можете использовать PuttyGen в Windows для преобразования из .PEMв.PPK , хотя я не уверен в обратном.

Вы также можете преобразовать ключ, используя puttyдля Mac через portили brew:

sudo port install putty

или

brew install putty

Это также будет установлено puttygen. Чтобы puttygenвывести .PEMфайл:

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

Получив ключ, откройте окно терминала и:

ssh -i privatekey.pem user@my.server.com

У закрытого ключа должны быть жесткие настройки безопасности, иначе SSH пожалуется. Убедитесь, что только пользователь может прочитать ключ.

chmod go-rw privatekey.pem
Пурпурный тукан
источник
1
порт sudo ?? Этого точно не существует ... по крайней мере, в Mavericks
Педро Луз
23
Вы также можете установить замазку с помощью отвара : brew install putty. Обратите внимание, что мы здесь не используем sudo;)
GabLeRoux
2
Полезный ответ !! Спасибо за это!! Для тех , кто не установлен порт, может следовать следующей ссылке , чтобы установить мерзавца: codingsteps.com/installing-and-using-putty-on-mac-os-x
Вирадж
3
Что означает эта ошибка, когда я пытаюсь запустить команду puttygen? Введите кодовую фразу для загрузки ключа: Ошибка утверждения: (random_active), функция random_byte, файл ./../sshrand.c, строка 313. Прерывание прерывания: 6
fastasleep
6
Вам необходимо установить формулу заваривания из HEAD, поэтому brew uninstallсначала используйте brew install putty --HEAD. Это сработало для меня.
Dokie 08
32

Конвертировать PPK в OpenSSh

OS X: установите Homebrew, затем запустите

заварить установить шпатлевку

Поместите ключи в какую-нибудь директорию, например, в вашу домашнюю папку. Теперь преобразуйте ключи PPK в пары ключей SSH: поиск в кеше

Чтобы сгенерировать закрытый ключ:

cd ~

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

и для генерации открытого ключа:

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

Переместите эти ключи в ~ / .ssh и убедитесь, что для вашего закрытого ключа установлены права доступа:

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

подключиться к ssh серверу

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

Перенаправление портов для подключения удаленного сервера mysql

ssh -i ~/.ssh/id_dsa -L 9001:127.0.0.1:3306 username@serverName
ринкеш
источник
19

Есть способ сделать это, не устанавливая на Mac шпатлевку. Вы можете легко преобразовать существующий файл PPK в файл PEM с помощью PuTTYgen в Windows.

Запустите PuTTYgen, а затем загрузите существующий файл закрытого ключа с помощью кнопки Загрузить. В меню «Конверсии» выберите «Экспорт ключа OpenSSH» и сохраните файл закрытого ключа с расширением файла .pem.

Скопируйте файл PEM на свой Mac и сделайте его доступным только для чтения вашим пользователем:

chmod 400 <private-key-filename>.pem

Тогда вы сможете использовать ssh для подключения к удаленному серверу.

ssh -i <private-key-filename>.pem username@hostname
мерзлота
источник
10
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.Так что лучший способ сделать это на Mac - сделать это в Windows ?!
Roee Gavirel
8
На самом деле @sigi мой ответ действительно был полезен. Основная цель вопроса, насколько я понимаю, - подключиться с Mac к серверу Linux, используя существующий файл .ppk с машины Windows. Учитывая, что у задающего вопрос есть доступ к компьютеру с Windows, преобразование файла .ppk в файл .pem перед его копированием на Mac является таким же действенным решением, как и его первоначальное копирование на Mac и преобразование его там. Я предложил этот подход, потому что некоторые люди могут предпочесть не устанавливать на свой Mac дополнительное программное обеспечение, которое им не нужно.
dasfrosty 08
4
Этот ответ очень полезен именно по защищаемой причине: кто-то, переходящий с Windows на Mac с существующим файлом ppk, с большей вероятностью захочет выполнить экспорт из Windows, а не устанавливать PuTTY на Mac без какой-либо конкретной цели. Это именно то, что я выбрал.
trevorsky 02