У меня возникают трудности со входом в VPS под управлением CentOS 5.5 с использованием аутентификации с открытым ключом. Я могу войти как в стандартную учетную запись пользователя, так и в учетную запись root, используя аутентификацию по паролю. Я использую Windows и Cygwin, все Cygwin и Windows уже несколько месяцев работают нормально; Я уверен, что проблема на стороне сервера.
Я использовал ssh-keygen для создания закрытого ключа id_rsa и открытого ключа id_rsa.pub. Я скопировал это в каталог пользователя на сервере и сделал cat id_rsa.pub >> authorized_keys
. Мой каталог /home/myuser/.ssh установлен на 700, файл authorized_keys установлен на 600.
При входе в систему моя система сообщает следующее (-vvv):
Next authentication method: publickey
Offering RSA public key /.ssh/id_rsa
send_pubkey_test
we sent a publickey packet, wait for reply
Authentications that can continue: publickey,password
Затем спрашивает у меня пароль. Из файла / var / log / auth моего сервера у меня есть следующее, связанное с процессом открытого ключа
sshd[28249]: input_userauth_request: try method publickey
sshd[28249]: test whether pkalg/pkblob are acceptable
sshd[28249]: mm_key_allowed entering
sshd[28249]: mm_request_send entering: type 21
sshd[28249]: mm_key_allowed: waiting for MONITOR_ANS_KEYALLOWED
sshd[28249]: mm_request_receive_expect entering: type 22
sshd[28248]: monitor_read: checking request 21
sshd[28249]: mm_request_receive entering
sshd[28248]: mm_answer_keyallowed entering
sshd[28248]: mm_answer_keyallowed: key_from_blob: 0x2b6ea1049910
sshd[28248]: temporarily_use_uid: 10022/10022 (e=0/0)
sshd[28248]: trying public key file /home/myuser/.ssh/authorized_keys
sshd[28248]: secure_filename: checking '/home/myuser/.ssh'
sshd[28248]: secure_filename: checking '/home/myuser'
sshd[28248]: secure_filename: terminating check at '/home/myuser'
sshd[28248]: restore_uid: 0/0
sshd[28248]: key not found
sshd[28248]: temporarily_use_uid: 10022/10022 (e=0/0)
sshd[28248]: trying public key file /home/myuser/.ssh/authorized_keys
sshd[28248]: secure_filename: checking '/home/myuser/.ssh'
sshd[28248]: secure_filename: checking '/home/myuser'
sshd[28248]: secure_filename: terminating check at '/home/myuser '
sshd[28248]: restore_uid: 0/0
sshd[28248]: key not found
sshd[28248]: Normalising mapped IPv4 in IPv6 address
sshd[28248]: Failed publickey for myuser from 87.115.220.187 port 59636 ssh2
Как будто не может найти файл authorized_keys. Однако команда nano /home/myuser/.ssh/authorized_keys
открывает файл без проблем.
Из / etc / ssh / sshd_config:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Некоторые люди сообщают, что разрывы строк в файле authorized_keys могут вызывать проблемы, поэтому я убедился, что их нет (в любом случае в нем только 1 ключ). Файл начинается с ssh-rsa
затем длинный ключ и, наконец, пробел и M1ke@M1ke-PC
.
У кого-нибудь есть идеи?
Если ты действительно это сделал cat id_rsa.pub < authorized_keys
тогда твой authorized_keys
Тогда файл не будет содержать открытый ключ, соответствующий используемому вами закрытому ключу, поэтому ssh возвращается к аутентификации по паролю. Решить проблему
cat id_rsa.pub >>authorized_keys
чтобы добавить новый открытый ключ к вашим authorized_keys.
Является SELinux включен? Если да, файл требует установки контекста.