Я безуспешно пытался запустить SSH без пароля. Документация, которую мне удалось найти, была немного неровной. Что касается генерации открытого и закрытого ключей, я попытался использовать два разных подхода: 1. использовать puttygen для генерации ключей; 2. Используйте ssh-keygen сервера для создания ключа. Это вводит мой первый вопрос. Важно ли генерировать ключ на локальном компьютере? Большая часть документации, которую я видел, указывает, что этот шаг должен быть выполнен на локальном компьютере, но ничего не говорит, почему или если это обязательно.
С этого момента процесс, похоже, заключается в перемещении открытого ключа в папку .ssh сервера и использовании команды cat для соединения authorized_keys и нового открытого ключа. Насколько я понимаю на данный момент, если программа ssh настроена на использование ключа, вы сможете войти в систему без пароля. К сожалению, пока не добился успеха. Правильно ли я понимаю процесс? Из-за чего установка может не работать? У меня лишь ограниченное понимание ssh, поэтому я чувствую себя немного похожей на рыбу, выброшенную из воды. Спасибо за помощь!
Настройка системы
Обновить
После дальнейших тестов, основанных на ответах, проблема оказалась проблемой совместимости между putty и openssh. Я решил эту проблему, сгенерировав ключи с помощью сервера (openssh), а затем использовал puttygen для преобразования ключа в формат, распознаваемый замазкой. Отсюда я смог использовать pageant, чтобы сделать ключ доступным для tortoiseSVN. Спасибо, парни!
Важно ли генерировать ключ на локальном компьютере?
Да. Даже очень. Вам необходимо сгенерировать ключ как пользователь, от имени которого вы будете запускать ssh-клиент, на машине, с которой вы будете его запускать. Ключ привязан к этой личности.
Что касается файла authorized_keys, вам необходимо убедиться, что вы добавили его в каталог, указанный в файле sshd_config. По умолчанию это ~ / .ssh /, поэтому поищите в каталоге .ssh у себя дома на удаленном компьютере. Если файла authorized_keys нет, просто создайте файл, содержащий ключ, который вы сгенерировали на клиенте. В противном случае добавьте его.
Если он по-прежнему не работает, значит, вы либо не пытаетесь пройти аутентификацию с помощью ключа (более вероятно), либо сервер не принимает вход с использованием ключа (менее вероятно).
Установили ли вы в PuTTY настройку закрытого ключа в меню Connection> SSH> Auth?
Неважно, какая машина генерирует ключи, если у вас есть как открытый, так и закрытый ключи. Без обоих у вас возникнет проблема, поскольку один расшифровывает то, что зашифровывает другой.
Важно то, какое приложение используется для генерации ключей. PuTTYgen будет работать, но для совместимости с OpenSSH, конечно, вам нужно будет взять «Открытый ключ для вставки в файл authorized_keys OpehSSH» и вставить его в файл авторизованных ключей вашего сервера для каждого пользователя. Некоторые серверы назовут это authorized_keys2
другие просто authorized_keys
. (Зависит от версии OpenSSH и, возможно, от того, настроен ли он для приема информации аутентификации SSHv1.) Вам также необходимо убедиться, что у него есть необходимые разрешения (обычно 600 и принадлежат пользователю), иначе OpenSSH проигнорирует Это.
Если вы используете OpenSSH на обеих машинах, все должно работать, пока общественный key находится в authorized_keys (или эквиваленте сервера), и этот файл имеет правильные разрешения.
Одна из самых частых проблем с автоматическим вводом ключей - это разрешения. Моя обычная командная строка выглядит так (после подключения к машине мне нужно добавить ключи):
mkdir .ssh
cat >> .ssh/authorized_keys2
# hit paste to enter public key text, then enter, Ctrl-D, enter again
chmod -R go-rwx .ssh
Эта последняя команда имеет все значение; он устанавливает соответствующие разрешения * nix для файлов и каталогов, чтобы SSH принимал их и использовал их должным образом.
Без надлежащих разрешений для файлов OpenSSH (типичное серверное программное обеспечение) просто проигнорирует ваш файл ключей.
Если вы используете Tectia для создания ключей на вашем компьютере с Windows, вам может потребоваться сначала преобразовать формат. Ключ OpenSSH выглядит как «ssh-dss ABCD .... ZYXW» в одной длинной строке. Если ваш открытый ключ состоит из нескольких строк с заголовками типа «---- Открытый ключ ----», сначала выполните преобразование. Предполагая, что вы загрузили открытый ключ как tectiakey.txt:
ssh-keygen -i -f tectiakey.txt >> ~/.ssh/authorized_keys2