1

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

Я следовал руководству, найденному здесь - http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html - к письму.

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

Мой первый вопрос заключается в том, что причина, по которой я это делаю, заключается в том, что я могу использовать SSH для конкретного сайта на моем сервере, поэтому я настраиваю все это на сервере, используя имя пользователя, связанное с сайтом (в данном случае tosbourn), это право или я должен был использовать root на сервере?

Второй вопрос заключается в том, что, поскольку на моем компьютере мое имя пользователя отличается (это toby), я думаю, что это может помешать его работе? Я прав в этом предположении или это не имеет значения?

В существующем состоянии домашние каталоги на моем локальном компьютере и сервере содержат .ssh, и я скопировал нужный файл и переименовал его в авторизованные_ключи (и ключи2)

Любая помощь будет принята с благодарностью.

5 ответов5

3

Необходимо проверить права доступа к файлу ключа на сервере. В прошлом я обнаружил, что sshd не будет использовать файл authorised_keys если разрешения не сильно ограничены.

chmod 600 ~/.ssh/authorized_keys

должен сделать это.

Кстати, я использую ключи, сгенерированные PuTTY, для доступа к серверу Linux (Slackware), и все хорошо.

1
  • Использование обычного пользователя хорошо и на самом деле предпочтительнее. Вы можете даже рассмотреть возможность отключения корневых учетных записей на сервере.
  • Если ваши имена пользователей различаются на разных компьютерах, вы должны указать имя пользователя в командной строке ssh (или в файле ~/.ssh/config ): ssh -l username hostname .

На вашем сервере проверьте системные журналы в /var/log . Я не уверен, где неудачные попытки входа в систему регистрируются на вашем компьютере, но ищите файлы журнала, которые были изменены недавно после неудачного входа в систему, и вы должны иметь возможность что-то придумать.

Если это не помогло, попробуйте получить подробный вывод из ssh: ssh -v -l username hostname . Вывод трудно прочитать и понять, но он может дать вам подсказку о том, что могло пойти не так.

Также всегда стоит проверять, чтобы открытый ключ, который вы положили на свой сервер, не попал туда в несколько строк. Один открытый ключ = одна строка в файле авторизованных ключей.

Наконец, вы уверены, что на вашем сервере разрешены входы с открытым ключом?

1

У меня были проблемы с ключами на сервере под управлением Ubuntu. Один из способов проверить это на сервере:

sudo /usr/sbin/sshd -d -p [some port]

А затем подключиться с помощью

ssh -v server.url -p [same port]

Это должно дать вам отладочную информацию с обеих сторон. Процесс sshd, вероятно, будет более интересным, потому что он расскажет вам, почему он отклоняет ключ.

Мое решение состояло в том, чтобы просто сдаться и переместить авторизованные ключи в /etc /ssh /users /[user name] /authorized_keys, а затем изменить настройку AuthorizedKeysFile /etc /ssh /sshd_config:

AuthorizedKeysFile /etc/ssh/users/%u/authorized_keys

Это своего рода грубое решение, но оно может решить вашу проблему.

0

Я говорил с хозяевами, и казалось, что ключ, который я генерирую, должен быть создан в Putty на машине с Windows, преобразованной для работы на моей машине с Ubuntu. Это не совсем похоже, но я собираюсь попробовать и посмотреть, что произойдет!

Еще раз приветствует Манни за ответ.

0

На клиенте делаем:

SSH-серийник

(без пароля)

а потом:

ssh-copy-id имя пользователя @ сервер

Это должно настроить ключ входа в систему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .