Настройка машины для использования ключа поверх SSH
Я пытаюсь настроить ключ между моей машиной Ubuntu и моим веб-сервером, чтобы я мог подключиться к нему по SSH без необходимости каждый раз вводить пароль.
Я следовал руководству, найденному здесь - http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html - к письму.
Хотя все, кажется, работает, когда я пытаюсь подключиться к серверу SSH в следующий раз, он все равно запрашивает у меня пароль.
Мой первый вопрос заключается в том, что причина, по которой я это делаю, заключается в том, что я могу использовать SSH для конкретного сайта на моем сервере, поэтому я настраиваю все это на сервере, используя имя пользователя, связанное с сайтом (в данном случае tosbourn), это право или я должен был использовать root на сервере?
Второй вопрос заключается в том, что, поскольку на моей машине мое имя пользователя отличается (это toby), я думаю, что это может помешать его работе? Я прав в этом предположении или это не имеет значения?
В существующем состоянии домашние каталоги на моем локальном компьютере и сервере содержат.ssh, и я скопировал нужный файл и переименовал его в авторизованные_ключи (и ключи2)
Любая помощь будет принята с благодарностью.
5 ответов
Необходимо проверить права доступа к файлу ключа на сервере. Я обнаружил в прошлом, что sshd
не будет использовать authorised_keys
файл, если разрешения не сильно ограничены.
chmod 600 ~/.ssh/authorized_keys
должен сделать это.
Кстати, я использую ключи, сгенерированные PuTTY, для доступа к серверу Linux (Slackware), и все хорошо.
- Использование обычного пользователя хорошо и на самом деле предпочтительнее. Вы можете даже рассмотреть возможность отключения корневых учетных записей на сервере.
- Если ваши имена пользователей различаются на разных компьютерах, вы должны указать имя пользователя в командной строке ssh (или в
~/.ssh/config
файл):ssh -l username hostname
,
На вашем сервере проверьте системные входы в систему /var/log
, Я не уверен, где неудачные попытки входа в систему регистрируются на вашем компьютере, но ищите файлы журнала, которые были изменены недавно после неудачного входа в систему, и вы должны иметь возможность что-то придумать.
Если это не помогло, попробуйте получить подробный текст из ssh: ssh -v -l username hostname
, Вывод трудно читать и понимать, но он может дать вам подсказку о том, что могло пойти не так.
Также всегда стоит проверять, чтобы открытый ключ, который вы положили на свой сервер, не попал туда в несколько строк. Один открытый ключ = одна строка в файле авторизованных ключей.
Наконец, вы уверены, что на вашем сервере разрешены входы с открытым ключом?
У меня были проблемы с ключами на сервере под управлением 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
Это своего рода грубое решение, но оно может решить вашу проблему.
Я говорил с хозяевами, и казалось, что ключ, который я генерирую, должен быть создан в Putty на машине с Windows, преобразованной для работы на моей машине с Ubuntu. Это не похоже, но я собираюсь попробовать и посмотреть, что произойдет!
Еще раз приветствует Манни за ответ.
На клиенте делаем:
SSH-серийник
(без пароля)
а потом:
ssh-copy-id имя пользователя @ сервер
Это должно настроить ключ входа в систему.