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

Windows-to-linux: замазка с SSH и парой закрытый / открытый ключ

Я потратил около 3 часов, пытаясь выяснить, как подключиться к Linux-серверу с моей машины с Windows, используя шпатлевку, без необходимости отправлять пароль.

Это подключение к серверу Ubuntu, который использует OpenSSH. Закрытый ключ - SSH-2 RSA, 1024 бита. Я подключаюсь по SSH2.

Я уже сталкивался с более распространенными проблемами:

  1. Putty сгенерировал открытый ключ в «неправильном формате». Я исправил это (как видно на это сообщение в блоге). Однако, поскольку я еще не подключен, я не могу полностью подтвердить, что этот файл имеет правильный формат. Теперь ключ находится в одной строке, и я попытался добавить / удалить разрывы строк в конце файла. Я также несколько раз пробовал использовать процесс лечения общедоступных файлов, чтобы убедиться, что я не испортил ручное преобразование. Даже в этом случае у меня нет возможности проверить точность здесь.
  2. Разрешения сразу были неверными, в частности, это означало, что у файла было слишком много разрешений. Мне тоже пришлось решить эту проблему, и я знаю, что это прошло, потому что я больше не вижу связанной ошибки в /var/log/auth.log.
  3. Я пробовал оба authorized_keys и authorized_keys2 если на сервере установлена ​​старая версия OpenSSH, но это ничего не изменило.
  4. У меня есть доступ как пользователь. После сбоя этого ключевого файла я могу вместо этого ввести свой пароль

Единственное, что у меня осталось, это то, что в нем утверждается, что я ввел неверный пароль:

sshd[22288]: Failed password for zzzzzzz from zz.zz.zz.zz port 53620 ssh2

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

Я больше ничего не вижу ни в одном из используемых файлов / var / log. Что еще могло быть не так?

  • Создайте свой ключ с PuttyGen.
  • Щелкните правой кнопкой мыши текстовое поле «Открытый ключ для вставки ...» и выберите select all
  • Щелкните правой кнопкой мыши еще раз и выберите copy.
  • Подключитесь к своему хосту и отредактируйте .ssh/authorized_keys, и вставьте свой ключ, удалите все ранее существовавшие вещи, когда вы пытались подписаться на это видео.
  • Убедитесь, что ваш ~/.ssh папка 0700 с участием chmod 0700 ~/.ssh/
  • Ваш файл authorized_keys должен быть 0600 так chmod 0600 ~/.ssh/authorized_keys.

Создайте пару ключей и сохраните открытый ключ на сервере, как предложено @Zoredache. Введите пароль для защиты закрытого ключа и нажмите Save private key и сохраните ключ, например в вашем профиле пользователя. Удалите из ключевого файла разрешения для всех, кроме себя.

Чтобы иметь возможность аутентифицироваться с помощью вашего закрытого ключа, вам необходимо сделать его доступным для PuTTY. Либо грузить это с Pageant или введите его в диалоговом окне конфигурации PuTTY под Connection > SSH > Auth (нажмите Browse... и выберите только что сохраненный файл).

В том же диалоговом окне категория Session введите имя или IP-адрес хоста, к которому вы хотите подключиться, в соответствующее поле. Перейти в подкатегорию Logging и нажмите All session output, затем щелкните Open.

Когда откроется окно терминала, щелкните правой кнопкой мыши строку заголовка и выберите Event Log. Этот журнал на стороне клиента дополняет auth.log на стороне сервера и должен помочь вам узнать, что происходит.

это означает, что обмен ключами не состоялся или завершился неудачно.

загрузите cli tool plink.exe (там же, где вы скачали putty.exe) и выполните некоторую отладку.

plink -v -i yourprivatekeyfile user@server

посмотрите, что он говорит вам, помимо того, что говорит сервер.

вы можете сделать это в окне PowerShell или cmd.

если вы уже создали свой общедоступный файл шпатлевки по умолчанию, вы можете преобразовать его с помощью

ssh-keygen -i -f yourputtypubkeyfile> openssh.key

быть добавленным в ваши authorized_keys