Перейти к содержимому

Server refused our key putty что делать

  • автор:

OpenSSH + Putty = Server refused our key. Задолбало

Привет. Настраиваю openssh, авторизация по ключам. Генерю ключ в puttygen, кидаю на сервер в /etc/ssh/authorized_keys паблик-часть. Можно так же кидать в ~/.ssh/authorized_keys, но разницы я не заметил.

Фишка в том, что ключ принимается только тогда, когда я захожу под root. В остальных случаях плюётся, мол, сервер не принял ключ. Я уже в отчаянии. Перечитал кучу манов, статеек — всё бесполезно. Для рута работает, а для остальных — нет.

Все authorized_keys рассовывал правильно, в sshd_config прописывал пути (ну, либо у всех в ~, либо общий в /etc/ssh). Chown делал, chmod 700 на папку .ssh и 600 либо 640 на authorized_keys тоже. И так и сяк. Под рутом заходит (принимает ключ), а под другими логинами — нет.

Подскажите, куда копать? Вот конфиг sshd_config текущий: http://gist.github.com/1174417

Версия ssh: OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010 OS: Debian Squeeze 6.0.1

Ошибка «Server refused our key»

Если при входе через PuTTY (или другой клиент) под пользователем без пароля только по ключу SSH в ответ на ввод мы видим такое:

  • Using username «convirt».
  • Server refused our key
  • convirt@192.168.0.80’s password:

то это значит, что сервер OpenSSH нестроен на обязательную авторизацию по паролю через PAM и не пускает без ввода пароля (т.е. пустые пароли не проходят).

Чтобы отключить обязательный ввод пароля делаем следующее:

1. логинимся как root (или через sudo)

2. правим файл настроек OpenSSH так:

3. ищем строку UsePAM yes меняем ее и проверяем что параметры установлены так:

Trying to do ssh authentication with key files: server refused our key

I’m trying to setup ssh authentication with key files in stead of username/password. The client is a Windows box running PuTTY and the server is a Ubuntu 12.04 LTS server. I downloaded puttygen.exe and had it generate a key pair. In /etc/ssh/sshd_config I have this line:

AuthorizedKeysFile %h/.ssh/authorized_keys 

and on my client’s public key file it says this:

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "[email protected]" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6 qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83 [email protected] ---- END SSH2 PUBLIC KEY ---- 

I copied the part from «ssh-rsa AAA» to «[email protected]» and put that in the file ~/.ssh/authorized_keys on my server (in my own homefolder). In PuTTY under Connection > SSH > Auth I entered the path to the private key it generated on my client and saved the session settings. I restarted the ssh server with

sudo service ssh restart 

Now if I load the profile in PuTTY (I verified the private key is still in Connection > SSH > Auth and that the path is correct) and run the profile, it says

Server refused our key 

I tried putting the public key in a file under the directory ./ssh/authorized_keys/ but that didn’t help so I used ./ssh/authorized_keys as a file, pasting the key in it. I also tried generating a private/public key pair on the server, putting the public key in ./ssh/authorized_files and loading the private one in PuTTY on my client. Rebooting the server didn’t help either. I found that the error may be solved by putting the key in a place outside the user’s home folder but that’s only useful if the home folder is encrypted, which this one is not. Also tried generating a 4096 bit key, thinking perhaps 1024 was too short. How can I get this to work? Thanks!

EDIT:

Ok, /var/log/auth.log said:

sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh 

Google tells me ~/.ssh/ should be 700 and and ~/.ssh/authorized_keys should be 600, so I did that. Now /var/log/auth.log says:

sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key] 

pscp Server refused our key

Есть виртуальная машина в гугл облаке на Ubuntu При помощи puttygen.exe я сгенерироваал пару ключей. Публичный ключ залил в консоль управления гугла. В putty создал и настроил сессию с именем test для подключения к машине. Ввожу

putty -load test 

у меня запрашивается пароль к приватному ключу и после этого устанавливается соединение. Никаких логинов и паролей больше не запрашивается. Теперь я хочу на удаленную машину передать файл. Запускаю

pscp.exe -load test readme.txt "[email protected]:readme.txt" 

Никаких запросов паролей не выполняется. Вместо этого получаю ответ

Server refused our key
Fatal: Disconnected: No supported authentication methods available (server sent: publickey)

Что я делаю не так? Почему ключ подходит при подключении через putty и не принимается при подключении через pscp.exe ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *