11 дек. 2014 г.

Как чинить проблемы SSHD в Centos 6

Как чинить проблемы SSHD

Если ваша Путти внезапнно вместо логина на сервер по паре ключей пишет в консоли:

Using username "root".
Server refused our key
root@8.8.8.8's password:

А в логе путти вы видите:
2014-12-10 12:17:15 Offered public key
2014-12-10 12:17:15 Server refused our key
2014-12-10 12:17:15 Using SSPI from SECUR32.DLL
2014-12-10 12:17:15 Attempting GSSAPI authentication
2014-12-10 12:17:16 GSSAPI authentication request refused

Это значит, что: караул, меня взломали, я разорен или что настала пора что-то полечить.

1. если вы раньше отключали ведение логов для экономии ресурсов, то нужно убедиться в том, что сейчас работает демон rsyslogd, без него не пишется /var/log/secure и следовательно не работает fail2ban между прочим
# ps axfu
где-то есть такое /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
service rsyslog start
chkconfig rsyslog on
2. включить дебаг лога SSHD
\etc\ssh\sshd_config
разремить или добавить
LogLevel DEBUG3
в районе
#LogLevel INFO
3. За одно проверить
#AuthorizedKeysFile .ssh/authorized_keys
обратите внимание, что путь будет строиться от домашнего каталога юзера! Вам тут исправлять вот так
AuthorizedKeysFile /root/.ssh_t/authorized_keys
не нужно!
4. читать логи, если там есть
key_type_from_name: unknown key type 'ssh-dsa'
key_read: missing keytype
то внимательно проверить файл с публичным ключем, в моем случае было ssh-dsa.... вместо ssh-dss....
а если бы я выбрал ключик попроще RSA, то такой проблемы не было бы :)
желательно в конце ключа через пробел после == дописать что-то типа john@example.net
5. Вывод - выбирайте тип RSA и генерируйте ключи на сервере, потому что при переносе ключа из Putty в \root\.ssh\authorized_keys больше шансов ошибиться, чем при скачивании приватного ключа с сервера на локальный комп.
5. Инструкция
Создаем папку
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
Генерируем ключи
$ ssh-keygen -t rsa
и три раза Энтер
Создаст
~/.ssh/id_rsa приватный ключ
~/.ssh/id_rsa.pub публичный ключ
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
Теперь нужно стащить ~/.ssh/id_rsa (приватный ключ) в программу puttygen.exe и сохранить в формате Путти. Потом подключить к Путти...
Проверим права и владельцев по всему пути
namei -om /root/.ssh
SSHD строго следит за минимально необходимыми правами. Ставить везде 777 и 666 нельзя.
Если это ВДС под OpenVZ, то потребуется восстановить владельца:
restorecon -Rv /root/.ssh
Припрячем ключ на будущее
$ chmod 600 ~/.ssh/id_rsa
Или уберем за собой, смотря кому как нужно
rm ~/.ssh/id_rsa
rm ~/.ssh/id_rsa.pub


Полезное чтиво http://wiki.centos.org/HowTos/Network/SecuringSSH Прочитать полностью...