Странное поведение при входе через открытый ключ SSH

439
Rob360

Я действительно застрял здесь. Я пытался подключиться к моему серверу ec2 по локальной сети с открытым ключом, но он не работает. -> Я получаю разрешение Отказано (открытый ключ).

Настройка выглядит следующим образом: Local: сгенерированная пара открытого ключа и скопированное содержимое id_rsa.pub. Удаленный: ssh-ed на мой сервер EC2 с файлом PEM и вставкой содержимого id_rsa.pub в новую строку файла авторизованных ключей в папке .ssh.

Должен работать правильно? Я заметил, что распространенной ошибкой являются права доступа, но мои, похоже, установлены правильно:

Удаленные разрешения:

drwx------ 2 ec2-user ec2-user 4096 Jul 23 04:00 .ssh 

и в .ssh:

-rw-r--r-- 1 ec2-user ec2-user 404 Jul 24 03:19 id_rsa.pub -rw------- 1 ec2-user ec2-user 1679 Jul 24 03:19 id_rsa -rw------- 1 ec2-user ec2-user 529 Jul 26 20:53 authorized_keys 

Местный:

drwx------ 10 robvanhaaren staff 340 Jul 26 18:43 .ssh 

и в .ssh:

-rw-r--r-- 1 robvanhaaren staff 404 Jul 26 21:28 id_rsa.pub -rw------- 1 robvanhaaren staff 1766 Jul 26 21:28 id_rsa -rw-r--r-- 1 robvanhaaren staff 5987 Jul 26 21:29 known_hosts 

Но когда я бегу:

Robs-MacBook-Air-2:.ssh robvanhaaren$ ssh ec2-54-85-62-99.compute-1.amazonaws.com -l ec2-user -v 

это возвращает:

OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013 debug1: Reading configuration data /etc/ssh_config debug1: /etc/ssh_config line 20: Applying options for * debug1: Connecting to ec2-54-85-62-99.compute-1.amazonaws.com [54.85.62.99] port 22. debug1: Connection established. debug1: identity file /Users/robvanhaaren/.ssh/id_rsa type 1 debug1: identity file /Users/robvanhaaren/.ssh/id_rsa-cert type -1 debug1: identity file /Users/robvanhaaren/.ssh/id_dsa type -1 debug1: identity file /Users/robvanhaaren/.ssh/id_dsa-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2 debug1: match: OpenSSH_6.2 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.9 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Server host key: RSA 7a:d3:6c:7f:64:5d:b1:7b:2e:bb:73:0c:ce:0c:17:77 debug1: Host 'ec2-54-85-62-99.compute-1.amazonaws.com' is known and matches the RSA host key. debug1: Found key in /Users/robvanhaaren/.ssh/known_hosts:15 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /Users/robvanhaaren/.ssh/id_rsa debug1: Authentications that can continue: publickey debug1: Trying private key: /Users/robvanhaaren/.ssh/id_dsa debug1: No more authentication methods to try. Permission denied (publickey). 

Странно то, что я МОГУ войти в систему с открытым ключом к серверу с моего другого сервера ec2. Таким образом, проблема, кажется, на моей локальной машине, а не на удаленной.

Пожалуйста помоги!

2
Вы проверили `/ var / log / auth.log`? Есть ли соответствующие журналы? Valmiky Arquissandas 10 лет назад 1
Используете ли вы тот же набор ключей для входа с другого сервера ec2? heavyd 10 лет назад 0
возможно, вы не добавили в авторизованные ключи должным образом. ssh-copy-id может сделать это автоматически. Сначала включите user / pass login, т. Е. `PasswordAuthentication yes` в sshd_config, и затем вы можете использовать` ssh-copy-id user @ host`, затем он автоматически добавится к авторизованным ключам, и в следующий раз он будет использовать ключ, и вы можете включить отключить пользователя / пройти логин, если хотите barlop 9 лет назад 2

2 ответа на вопрос

2
Alex Atkinson

Проблемы с SSH могут быть проблемой. Я всегда начинаю со следующего. У меня есть команды, сохраненные в шпаргалке, поэтому мне никогда не придется бояться опечаток.

chmod 700 ~/.ssh && chmod 600 ~/.ssh/* \ && chmod 644 ~/.ssh/authorized_keys \ && chown -r <username>:<username> /home/<username>/.ssh \ && chown -r <username>:<username> /home/<username>/.ssh/* 

Если это не сработает, я бы удалил author_keys и заново создал его (не забывая о правах собственности и разрешениях), убедившись, что скопировал содержимое из блокнота или другого подходящего текстового редактора. Wordpad и другие жирные редакторы могут испортить ключи. Вы также можете удалить запись удаленного хоста из файла known_hosts. Я помню, что должен был сделать это один раз для чего-то.

вы пишете "Если это не сработает, я бы удалил авторизованный_" barlop 9 лет назад 0
Да, author_keys ^ _ ^ (редактирование) Alex Atkinson 9 лет назад 0
Похоже, что файлы author_keys и id_rsa.pub имеют разные размеры - я думаю, что здесь проблема. Jacob Hume 9 лет назад 0
@JacobHume, вы должны уточнить это утверждение, так как author_keys может иметь этот id_rsa.pub и другие barlop 9 лет назад 0
Вы пишете «Вы также можете удалить запись удаленного хоста из файла known_hosts» <- или удаленный файл known_hosts. Хотя проблема known_hosts не является проблемой в его вопросе. Проблема known_hosts - это другая ошибка, связанная с изменением ключа. barlop 9 лет назад 0
@barlop Информация в вашем файле id_rsa.pub добавляется к авторизованным ключам на удаленном компьютере, устанавливая доверие для этой пары ключей. Поскольку размеры файлов различны, возможно, информация об открытом ключе (id_rsa.pub) была скопирована неправильно. Jacob Hume 9 лет назад 0
@JacobHume Я знаю, что id_rsa.pub добавляется к авторизованным ключам. То, что я сказал вам, было: санкционированные_каны могут иметь этот id_rsa.pub ** и более **, то есть если бы его было больше, размеры файлов не были бы равны, авторизованные ключи будут больше, и это не обязательно будет означать ошибку. Вот почему вам нужно уточнить, что вы имеете в виду. barlop 9 лет назад 0
1
Overbryd

Убедитесь, что вы проверите, /var/log/auth.logкак указано в комментарии. Почти всегда вы найдете там свой ответ.

У меня установлены эти разрешения для моих серверов и локально:

сервер

drwx------ remoteuser group ~/.ssh -rw------- remoteuser group ~/.ssh/authorized_keys 

в местном масштабе

drwx------ user group ~/.ssh -rw------- user group ~/.ssh/id_rsa -rw----r-- user group ~/.ssh/id_rsa.pub 
Из любопытства, почему ваш файл `author_keys` доступен для чтения другими? Разве файл `author_keys` не должен быть 600? JW0914 6 лет назад 0
Хороший улов. Это действительно старый ответ, и я, вероятно, должен его отредактировать. Overbryd 6 лет назад 0

Похожие вопросы