Это мое последнее средство. Я пытался выяснить проблему здесь часами.
Вот в чем дело: я скопировал свой закрытый ключ с машины № 1 на машину № 2. Машина # 1 может нормально подключаться через ssh к серверу с моим открытым ключом, но машина # 2 выдает следующий вывод при попытке соединения с сервером:
$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
...
Permission denied (publickey).
Очевидно, что есть больше отладочной информации, которую я пропустил, и я могу предоставить ее по запросу. Я убежден, однако, что ему не нравится мой файл закрытого ключа.
У меня также было подозрение, что это связано с тем, как я скопировал его с машины № 1 на машину № 2. Я скопировал / вставил текст с закрытого ключа на флешку. Это может быть проблемой, однако, когда я продублировал этот метод на другом рабочем файле с закрытым ключом и сделал различие для оригинала, для копии / вставки, они идентичны.
Я боролся с этим. Если бы я мог просто получить немного больше информации о том, почему мне не нравится мой ключ, я мог бы это исправить, я уверен. У кого-нибудь есть идеи по этому поводу? Есть ли где-нибудь метаданные, которые говорят ssh, что файл на самом деле является ключом RSA?
источник
/var/log/auth.log
на сервере говорит?Ответы:
По моему опыту, две наиболее распространенные ошибки аутентификации на основе ключей:
$HOME/.ssh
каталогФайловые права
OpenSSH делает многое для того, чтобы защитить себя от себя. Наиболее эффективный способ, которым это происходит, - применение жестких ограничений на доступ к вашей локальной папке ssh. Вы действительно хотите, чтобы только вы и только вы, получили доступ к каталогу. Ну, и любой с uid = 0, но нет хорошего способа обойти это. Так что вам нужно просто изменить свои разрешения:
chmod -R go-rwx ~/.ssh
это удалит права на чтение, запись и выполнение для любых файлов в каталоге .ssh у всех пользователей, кроме владельца, то есть вас .Проблемы с авторизованными ключами
Файл, содержащий ваш открытый ключ, как правило,
$HOME/.ssh/authorized_keys
должен соответствовать очень специфической форме для SSH, чтобы понять, как принимать закрытый ключ. Каждый ключ должен состоять как минимум из 2 полейКаждый ключ, вместе со всеми его опциями и компонентами, должен быть указан по одному в каждой строке в этом файле. Поскольку ключи имеют тенденцию быть очень длинными, они часто оборачиваются и отображаются в виде двух строк на вашем терминале. Это иногда вызывает хаос при попытке копирования / вставки, поскольку иногда одна или несколько строк новой строки будут вставлены, где бы ни находилась клавиша на экране. Исправление этой проблемы может быть немного сложнее для новичка оболочки.
Попробуйте запустить
wc -l ~/.ssh/authorized_keys
Это выведет количество строк в файле. Сравните это число с количеством ключей, которое вы ожидаете найти в файле. Если вы принимаете только один этот ключ, вы также можете просто сделать копию файла открытого ключа, поскольку он имеет тот же формат, что и файл авторизованных ключей. Что-то вроде
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
или, если у вас есть открытый ключ в той же системе, что вы можете сделать
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys
Кроме того, посмотрите файл журнала на удаленном хосте и посмотрите, нет ли там сообщений об ошибках. Файлы скорее всего будут либо
/var/log/secure.log
или/var/log/auth
.источник
make a copy of the private key file
должен быть открытый ключ (как показано в ваших примерах)Хотя вам, вероятно, придется сгенерировать новую пару ключей, чтобы машина 2 подключалась к серверу. Часто в открытом ключе указывается имя пользователя и машины тех, кто их сгенерировал. Это должно быть видно в вашем файле author_keys на сервере.
источник
Предоставленные вами сообщения отладки означают, что файл с закрытым ключом читается с предположением, что это на самом деле файл с открытым ключом / авторизованным хостом. Это не может быть фатальной ошибкой (я получаю такие сообщения даже для рабочих соединений). Это говорит что-нибудь о "Предложении" или "мы послали"?
источник
Попробуйте сравнить конфигурационные файлы ssh между двумя серверами.
то есть. что-то вроде cat / etc / sshd_config
источник