Пытаюсь на шлюзе настроить SSH-сервер и для отладки на начальных этапах подключаюсь с этого же шлюза (создал для этого специальную группу, к которой принадлежит одна пользоваетльская учётная запись)
Конфигурация сервера (опускаю всё, что закомментировано):
Port 22 Protocol 2 ListenAddress 127.0.0.1 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key SyslogFacility AUTHPRIV LogLevel DEBUG LoginGraceTime 2m PermitRootLogin yes StrictModes no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys HostbasedAuthentication no IgnoreUserKnownHosts yes IgnoreRhosts yes PasswordAuthentication no PermitEmptyPasswords no KerberosAuthentication yes KerberosTicketCleanup yes TCPKeepAlive no AllowGroups SSH_VUSERS AllowUsers sshDRVTiny
Конфигурация клиента:
Host * PreferredAuthentications publickey PasswordAuthentication yes IdentityFile ~/.ssh/identity IdentityFile ~/.ssh/id_rsa.pub PubkeyAuthentication yes LogLevel DEBUG ForwardX11 no
Ключи для клиента сгенерировал (парольную фразу оставил пус той), скопировал sshDRVTiny/.ssh/id_rsa.pub в sshDRVTiny/.ssh/authorized_keys:
[sshDRVTiny@localhost ~]$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys.
Что мне нужно: нормальная аутентификация пользователя sshDRVTiny на SSH-сервере по протоколу SSH2 c localhost на localhost (с использованием RSA-ключей, без ввода пароля).
Вот что я получаю вместо ожидаемого результата:
[sshDRVTiny@localhost ~]$ ssh -l sshDRVTiny localhost debug1: Connecting to localhost [127.0.0.1] port 22. debug1: Connection established. debug1: identity file /home/SSH/SSH_VUSERS/DRVTiny/.ssh/identity type -1 debug1: identity file /home/SSH/SSH_VUSERS/DRVTiny/.ssh/id_rsa.pub type 1 debug1: Remote protocol version 2.0, remote software version OpenSSH_3.8.1p1 debug1: match: OpenSSH_3.8.1p1 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_3.8.1p1 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc 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 The authenticity of host 'localhost (127.0.0.1)' can't be established. RSA key fingerprint is c4:b0:eb:93:7d:dc:60:f0:41:9e:7f:df:fd:cf:29:09. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (RSA) to the list of known hosts. debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,keyboard-interactive debug1: Next authentication method: publickey debug1: Trying private key: /home/SSH/SSH_VUSERS/DRVTiny/.ssh/identity debug1: Offering public key: /home/SSH/SSH_VUSERS/DRVTiny/.ssh/id_rsa.pub debug1: Authentications that can continue: publickey,keyboard-interactive debug1: No more authentication methods to try. Permission denied (publickey,keyboard-interactive)
Товарищи, имеющие опыт настройки SSH, объясните, пожалуйста, в чём тут загвоздка проклятая? (где собака порылась ?-) )
Re: Настройка SSH-сервера: в чём я ошибся?
Вот ещё на всякий случай (вдруг это поможет провести более точную диагностику проблемы):
Очень подробный лог, который создаёт сервер при работе в отладочном режиме (запуск sshd -ddd -D -e) при попытке подключения к нему - см. во вложении
Re: Настройка SSH-сервера: в чём я ошибся?
Блин, так что с SSH-м? Я уже третий день долбаюсь с его настройкой, уйму какого-то маразма (во всех отношениях... Одну и ту же никудышную статью видел растиражированной на 10-ке различных сайтов) перечитал - ни черта не помогает. Что у нас тут, все впали в глубокий транс?!
Никто ничего не знает, про SSH вообще все буквально первый раз слышат или просто принципиально лень отвечать (лучше флеймить до бесконечности, чем реальную помощь кому-то оказывать)? Ладно, чёрт с Вами, буду на другие форумы обращаться, коли тут все такие шибко занятые!
Re: Настройка SSH-сервера: в чём я ошибся?
1) Не нужно столько эмоций!
Люди действительно могут быть заняты. Кроме того, вход по SSH куда-либо без пароля -
не самая насущная из задач.
Я, например, работаю по SSH удаленно вот уже скоро 6 лет, и никогда даже не задумывался об
использовании такой возможности.
2) На самом деле в такой настройке нет ничего особо сложного. Нужно просто вчитаться в конфигурационные файлы
клиента и сервера (в те, что ставятся по-умолчанию), и прочитать толковую статью, например эту:
http://www.opennet.ru/docs/RUS/use_ssh. Она хоть и старенькая, но её на самом деле вполне
можно использовать.
3) Теперь о том, как я это сделал у себя.
Постановка проблемы: организовать возможность входа на localhost с него же root-ом без пароля.
а) Для этого берём DEFAULT-ные конфиги клиента и сервера, и слегка правим настройки сервера:
#LogLevel INFO
LogLevel DEBUG3
#PermitRootLogin no
PermitRootLogin without-password
PasswordAuthentication no
Всё остальное оставляем без изменения.
б) Теперь беремся за ключи.
Можно сгенерировать все ключи заново, а можно использовать старые ключи (если они уже есть).
После этого в каталоге со сгенерированными ключами делаем следующее:
cat ./*.pub > ./authorized_keys
Полученный authorized_keys копируем в /root/.ssh/authorized_keys
Остальные ключи (не pub!) копируем соответственно в /root/.ssh/identity, /root/.ssh/id_dsa и /root/.ssh/id_rsa
Почему так? Потому что так прописано в конфигурации клиента по-умолчанию.
Их же копируем в /etc/ssh с именами /etc/ssh/ssh_host_key, /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_dsa_key соответственно,
потому что так они прописаны в конфигурации сервера по-умолчанию.
в) Не забываем о /etc/hosts.allow! В него прописываем строку sshd:127.0.0.1
Вот и все, собственно.
/etc/rc.d/init.d/sshd restart
Заходим root-ом по ssh:
[root@home root]# ssh localhost
Last login: Sun Mar 12 10:35:14 2006 from localhost.localdomain
[root@home root]#
Смотрим /var/log/messages, и видим, что все нормально.
PS. Настройки PAM также не менялись, используем конфиги по-умолчанию.
Re: Настройка SSH-сервера: в чём я ошибся?
Хочу добавить, что клиент по-умолчанию (по крайней мере у меня) сконфигурирован так:
Protocol 1,2
Таким образом аутентификация происходит по протоколу SSH1.
Меняем порядок проверки протоколов, и получаем аутентификацию по протоколу SSH2 с ключем RSA.
Re: Настройка SSH-сервера: в чём я ошибся?
Самое интересное, что у меня всё прекрасно настроилось на домашней машине, в том числе и беспарольное переключение на оболочку root'а с помощью ssh, альтернативный su. Т.е. получается, что настраивал-то я всё правильно, а проблема на сервере была... чёрт его знает, в чём она была, но явно не в настройках SSH как таковых
Сейчас я даже keychain'ом, который мне порекомендовали на knoppix.ru, наловчился пользоваться, так что личный ключ у меня зашифрован passphrase, но вводить её каждый раз не нужно. Просто праздник души! Так бы вот и на сервере сделать, но там, видимо, придётся из исходников SSH собирать, потому что штатный SSH от ASP10 работает как-то странно...