Назад | Перейти на главную страницу

Настройка аутентификации с открытым ключом на сервере Linux из Windows (закрытый ключ ppk)

Я создал открытый и закрытый ключи с помощью PuTTYgen и скопировал открытый ключ в .ssh/authorized_keys под моей учетной записью.

Затем я пытаюсь указать закрытый ключ при попытке входа в систему, но, видимо, он не берет его и продолжает запрашивать имя пользователя / пароль, который у меня был изначально. Я использую WinSCP для подключения и указываю закрытый ключ в разделе Advanced / Authentication. Мне не хватает каких-либо шагов в WinSCP?

Содержание authorized_keys выглядит как ниже

ssh-rsa AAAAB3NzaC1yc2EAAAABpEVSiiRXi7tOHpkOyFa9w2OLpBep31k9lePCK7RQxsdfs9u11+rdu0XCidRKOY5j4anD1eDaNBj87wqZbsreRe5cFcsakyGUAYXAvqgGApvsep31k9lePCK7RQxlOY5j4anD1eDaNBj8LJO++K3SkUN8E0srRBO8YyMT6Y03/F7+AAAAB3NzaC1yc2Q4h2RLGtr12CDKSBVAnFEc+JucuF4uF0WY4Sh66MSFI63mCQFu9iYNYwWyT6lUo6sks4WypEVSiiRXi7tOHpkOyFa9w2OLpBzAlTA/VSQwdNTFYUI1vquaufZ9ORzTa6dkbBRo/mLVdevYSRMSDw1BUcinYz/ogdxRvw==

Я меняю разрешение на .ssh до 700 и authorized_keys до 600.

Хотя я перехожу в раздел аутентификации в WinSCP и указываю закрытый ключ (как показано на скриншоте), похоже, что ему все еще нужны имя пользователя и пароль, и он не берет его.


Когда я использую PuTTY и указываю закрытый ключ, после ввода имени пользователя для входа он говорит

Сервер отказался от нашего ключа

Вот лог от PuTTY

2018-04-28 17:43:05 Connecting to 158.85.98.202 port 22
2018-04-28 17:43:05 We claim version: SSH-2.0-PuTTY_Release_0.70
2018-04-28 17:43:05 Server version: SSH-2.0-OpenSSH_7.4
2018-04-28 17:43:05 Using SSH protocol version 2
2018-04-28 17:43:05 Doing ECDH key exchange with curve Curve25519 and hash  SHA-256
2018-04-28 17:43:05 Server also has ecdsa-sha2-nistp256 host key, but we don't know it
2018-04-28 17:43:05 Host key fingerprint is:
2018-04-28 17:43:05 ssh-ed25519 256         6b:0d:e2:f6:c5:9e:15:84:0c:1b:2c:19:62:cd:5b:ef
2018-04-28 17:43:05 Initialised AES-256 SDCTR client->server encryption
2018-04-28 17:43:05 Initialised HMAC-SHA-256 client->server MAC algorithm
2018-04-28 17:43:05 Initialised AES-256 SDCTR server->client encryption
2018-04-28 17:43:05 Initialised HMAC-SHA-256 server->client MAC algorithm
2018-04-28 17:43:05 Reading key file "C:\Users\\Desktop\private_key.ppk"
2018-04-28 17:43:09 Offered public key
2018-04-28 17:43:09 Server refused our key
2018-04-28 17:43:09 Using SSPI from SECUR32.DLL
2018-04-28 17:43:09 Attempting GSSAPI authentication
2018-04-28 17:43:09 GSSAPI authentication request refused

Чтобы избежать распространенных ошибок при настройке аутентификации с открытым ключом, используйте ssh-copy-id команда / сценарий. Поскольку у вас возникнут проблемы с запуском его в Windows, вы можете запустить его на самом сервере.

  • В PuTTYgen загрузите свой закрытый ключ (.ppk);
  • Скопируйте содержимое коробки Открытый ключ для вставки в файл authorized_keys OpenSSH в буфер обмена.
  • Вставьте его в свой любимый редактор (подойдет Блокнот Windows).
  • Сохраните содержимое в файл с .pub расширение.
  • Загрузите .pub файл на сервер.
  • Войдите на сервер с помощью SSH-клиента, например PuTTY.
  • На сервере типа:

    ssh-copy-id -i mykey.pub username@localhost
    

Если вы не хотите делать это вручную, вы можете использовать WinSCP 5.15. Он может настроить для вас аутентификацию с открытым ключом.
Использовать Инструменты> Установить открытый ключ на сервер кнопка на SSH> Страница аутентификации диалогового окна "Дополнительные параметры сайта WinSCP".

(Я автор WinSCP)


Еще одна альтернатива - ssh-copy-id сценарий. В Windows он поставляется с Git для Windows. Так что вы можете использовать это локально, если оно у вас есть.