Я пытаюсь настроить ssh-аутентификацию с ключевыми файлами вместо имени пользователя / пароля. Клиент - это Windows-бокс с PuTTY, а сервер - сервер Ubuntu 12.04 LTS.
Я скачал puttygen.exe, и он сгенерировал пару ключей. У /etc/ssh/sshd_config
меня есть эта строка:
AuthorizedKeysFile %h/.ssh/authorized_keys
и в файле открытого ключа моего клиента это говорит это:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "my@email.address.com"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
AV1pKxs=my@email.address.com
---- END SSH2 PUBLIC KEY ----
Я скопировал часть из «ssh-rsa AAA» в «my@email.address.com» и поместил ее в файл ~/.ssh/authorized_keys
на моем сервере (в моей домашней папке). В PuTTY под Connection> SSH> Auth я ввел путь к закрытому ключу, сгенерированному на моем клиенте, и сохранил настройки сеанса.
Я перезапустил сервер SSH с
sudo service ssh restart
Теперь, если я загружаю профиль в PuTTY (я проверил, что закрытый ключ все еще находится в Соединении> SSH> Auth и что путь правильный) и запустил профиль, он говорит
Server refused our key
Я попытался поместить открытый ключ в файл в каталоге, ./ssh/authorized_keys/
но это не помогло, поэтому я использовал его ./ssh/authorized_keys
как файл , вставив в него ключ. Я также попытался сгенерировать пару секретных / открытых ключей на сервере, вставить открытый ключ ./ssh/authorized_files
и загрузить закрытый ключ в PuTTY на моем клиенте. Перезагрузка сервера тоже не помогла.
Я обнаружил, что ошибку можно устранить, поместив ключ в какое-либо место вне домашней папки пользователя, но это полезно только в том случае, если домашняя папка зашифрована, а эта - нет.
Также попытался сгенерировать 4096-битный ключ, думая, что 1024 слишком короткая
Как я могу заставить это работать? Спасибо!
РЕДАКТИРОВАТЬ:
Хорошо, /var/log/auth.log
сказал:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google говорит мне, что ~/.ssh/
должно быть 700 и ~/.ssh/authorized_keys
должно быть 600, поэтому я сделал это. Теперь /var/log/auth.log
говорит:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
источник
sshd: error: key_read: uudecode AAAAB3N
ошибкойauth.log
?authorized_keys
файл, я просто вставил свойmykey.pub
файл в~/.ssh
папку и подумал, что он его заберет. Вместо этого, в конечном счете, мне нужно было запустить это или отредактировать и вставить ниже других ключей, которые могут быть там.cat mykey.pub >> authorized_keys
, Теперь это кажется простым, но извлеченный урок состоит в том, что все открытые ключи должны хранитьсяauthorized_keys
не только в~/.ssh/
каталоге. Кто-то, пожалуйста, сообщите, если это не правильное утверждение.Я только что столкнулся с этой проблемой. Несмотря на то, что конфиг установлен правильно, как уже упоминалось в этой теме (права доступа на author_keys и т. Д.), Оказалось, что у меня был открытый ключ в неправильном формате. Это было в форме:
Который не работал. Но все заработало, имея форму:
источник
ssh-keygen -i -f filenameofwindowsformpub.key
для преобразования открытого ключа в формат, понятный вашему серверу OpenSSH.проблема в том, что windows использует новую строку, отличную от linux, поэтому при копировании ключа из windows в linux в конце строки есть \ n, который вы не можете увидеть в linux в редакторе.
Если вы подключите /var/log/auth.log и попытаетесь войти в систему, ошибка будет такой:
Если вы измените свой ключ в Windows так, чтобы он был в одной строке без новой строки в конце, а затем скопировал его в linux, он должен работать (сделал свое дело для меня).
источник
Я должен был изменить разрешения на домашний каталог
источник
Мне пришлось изменить разрешения каталога ~ / .ssh с 770 до 700, а разрешения файла ~ / .ssh / authorized_keys с 660 до 600.
По какой-то причине удаление групповых разрешений исправило эту проблему для меня.
источник
~/.ssh/authorized_keys
Файл требует ключей , чтобы быть на одной линии. Если вы добавили его в несколько строк, как описано выше, попробуйте соединить строки.источник
Вот что сработало для меня:
Через
puttygen
, после того, как вы сгенерировали свои ключи, убедитесь, что вы скопировали и вставили информацию из верхнего поля, чтобы перейти в свой файл author_keys. Если вы сохраните свой открытый ключ на своем клиентском компьютере, а затем откроете его, текст будет отличаться от текста в верхней частиputtygen
экрана. Опять же, убедитесь, что вы копируете и вставляете текст из верхней частиputtygen
экрана (после того, как вы создали свои ключи) в ваш файл author_keys, который должен находиться в~/.ssh
.источник
В дополнение ко всем приведенным выше ответам, убедитесь, что вы
puttygen
правильно скопировали и вставили ключ !Если вы просто дважды щелкнете по массе ключевой строки, чтобы выбрать ее, вы можете не получить всю строку, потому что текстовое поле разбивает строки на некоторые символы, например
+
, так, что вы не выделяете текст после+
символа ( что вы не можете видеть, потому что текстовое поле слишком мало). Не забудьте выбрать всю строку вручную, отssh-rsa
самого конца текстового поля.источник
Иногда это может быть проблемой, связанной с наличием открытого ключа в одной строке, такой подход, кажется, решает ее
источник
для меня проблема была в том, что я создал
~/.ssh/authorized_keys
с использованием root, так что root принадлежал. Я должен былchown sshuser:sshuser ~/.ssh/authorized_keys
тогда работатьисточник
Я тоже столкнулся с этой ошибкой и решил ее, изменив права доступа для файла author_keys
600
.источник
Распространенной ошибкой является то, что люди используют текстовый редактор (например, Vim) и вставляют скопированный текст перед активацией «вставки» (нажмите + i в Vim перед вставкой)
источник
На самом деле, я изменил
authorized_keys
разрешение644
, затем проблема решена.источник
для отладки open ssh можно использовать:
он запускает sshd на другом порту 2020. он запускает sshd как текущую программу, поэтому вывод выводится на экран. если закрыто, то закрыто.
затем попробуйте подключиться.
объяснение:
https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm
источник
Я создавал файлы .ssh и authorized_keys, когда входил в систему как пользователь root, что давало неправильные разрешения. Он также поместил все файлы в корневой каталог.
Смена владельца этих файлов на пользователя, которого вы хотите, не будет хорошей практикой, поэтому я пересмотрел свои шаги и убедился, что вошел в систему как пользователь, с которым я хотел использовать SSH, и снова создал .ssh и authorized_keys.
Указания по подключению Win7 к серверу Xubuntu 15.04: как создать SSH-ключи с Putty для подключения к VPS
источник