LINUX.ORG.RU

Как работает SSH ?

 , , , ,


0

1

Привет Все!!
Возникла необходимость в SSh соединении. Есть две машины (для простоты 1.Vilnius и 2.London) на обоих Uбунту12.04LTS и примерно одинаковый набор программ, ничего такого связанного с безопасностью не установлено.
Ставим SSH.

apt-get install ssh
Встал на обеих машинах без проблем, и с собой подтянул openssh-client, openssh-server. Дальше правлю и копирую ssh-conf на оба компа. ssh-conf:
Host *
#   RhostsRSAAuthentication no
    RSAAuthentication yes
    PasswordAuthentication yes
    PubkeyAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
    IdentityFile ~/.ssh/identity
    IdentityFile ~/.ssh/id_rsa
    IdentityFile ~/.ssh/id_dsa
#   Port 22
#   Protocol 2,1
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
Ok, момент истинны:

talifero@talifero-london:~$ ssh 192.168.1.2
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
ECDSA key fingerprint is 09:0c:2f:bb:9d:f3:69:21:5c:3c:a9:ec:dd:a2:18:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.2' (ECDSA) to the list of known hosts.
talifero@192.168.1.2's password: 
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-41-generic-pae i686)
talifero@talifero-vilnius:~$

Чюдненько все работает.
Теперь попробуем наоборот:

talifero@talifero-vilnius:~$ ssh 192.168.1.7
The authenticity of host '192.168.1.7 (192.168.1.7)' can't be established.
ECDSA key fingerprint is ad:64:72:ee:0a:94:a2:05:c2:5c:4e:60:7f:6f:7f:99.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.7' (ECDSA) to the list of known hosts.
Permission denied (publickey,password).

Вот с этого момента мне ничего непонятно, дальше я много чего делал, и RSA ключи создавал и SSh переустанавливал, все одно c talifero-vilnius на talifero-london:
Permission denied (publickey,password).
Помогите разобраться, не понимаю в чем причина, компы почти одинаковые (в смысле системa на компах). В логе (var/log/auth.log) ничего нет. Порт 22 слушается.

PS. Кстати в конфиге поменял PasswordAuthentication no, а ему по барабану... все равно с talifero-london на talifero-vilnius по паролю заходит.

PS. Кстати в конфиге поменял PasswordAuthentication no, а ему по барабану... все равно с talifero-london на talifero-vilnius по паролю заходит.

а как насчёт сервис рестартануть ?

i_gnatenko_brain ★★★★
()
Ответ на: комментарий от i_gnatenko_brain

Я не то что сервис рестартил я комп рестартил.

talifero
() автор топика

Запустите вашу команду на соединение так:

ssh -v 192.168.1.7
Скорее всего, у вас права на домашний каталог, или каталог .ssh неправильно выставлены. Если ssh считает, что другие пользователи могут скомпроментировать ваш ключ, ssh не будет разрешать соединение с использованием ключа. А будет запрашивать пароль. Опция -v помогает получить отладочную информацию, которая укажет почему не используется аутентификация по ключу. Установите на каталог .ssh(иногда требуется установить те же права и на домашний каталог) права 750 или 700, обычно это исправляет описанную вами проблему. Если проблема на стороне сервиса sshd, а не клиента нужно остановить сервис sshd и запустить вручную от рута командой:
/usr/sbin/sshd -Dd
Потом соединяемся с узлом описанной выше командой, и смотрим отладочные данные. Но в вашем случае проблема именно в конфигурации клиента.

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.1.7 [192.168.1.7] port 22.
debug1: Connection established.
debug1: identity file /home/talifero/.ssh/identity type -1
debug1: identity file /home/talifero/.ssh/identity-cert type -1
debug1: identity file /home/talifero/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/talifero/.ssh/id_rsa-cert type -1
debug1: identity file /home/talifero/.ssh/id_dsa type -1
debug1: identity file /home/talifero/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
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: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA ad:64:72:ee:0a:94:a2:05:c2:5c:4e:60:7f:6f:7f:99
debug1: Host '192.168.1.7' is known and matches the ECDSA host key.
debug1: Found key in /home/talifero/.ssh/known_hosts:1
debug1: ssh_ecdsa_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,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/talifero/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: talifero@talifero-P35
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/talifero/.ssh/identity
debug1: Trying private key: /home/talifero/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey,password).


talifero
() автор топика
Ответ на: комментарий от drBatty
drwx------  2 talifero talifero 4096 апр.  13 14:21 .
drwxr-xr-x 71 talifero talifero 4096 апр.  14 14:56 ..
-rw-------  1 talifero talifero  812 авг.  26  2012 authorized_keys
-rw-------  1 talifero talifero 1679 авг.   2  2012 id_rsa
-rw-r--r--  1 talifero talifero  403 авг.   2  2012 id_rsa.pub
-rw-------  1 talifero talifero  222 апр.  13 14:27 known_hosts
-rw-------  1 talifero talifero  222 апр.  13 14:21 known_hosts.old
-rw-r--r--  1 talifero talifero  403 авг.  15  2012 known_hosts.pub
drwx------   2 talifero talifero 4096 апр.  13 14:21 .
drwxr-xr-x 100 talifero talifero 4096 апр.  14 14:56 ..
-rw-------   1 talifero talifero  222 апр.  13 14:27 known_hosts
talifero
() автор топика
Ответ на: комментарий от talifero

у меня права на ~/.ssh/known_hosts почему-то 644. С другой стороны, вряд-ли проблема в этом, сделайте на второй машине ключ id_rsa от имени простого юзера запустите ssh-keygen. А то там у вас почему-то такого ключа нет.

drBatty ★★
()
Ответ на: комментарий от talifero

-rw------- 1 talifero talifero 222 апр. 13 14:27 known_hosts

вы его что, скопировали? Зря. Он сам создаётся, это список известных хостов на этой системе. Если там нет системы, оно спрашивает

Are you sure you want to continue connecting (yes/no)? yes

и добавляет

drBatty ★★
()
Ответ на: комментарий от talifero

id_rsa.pub не должен быть rw-r--r. Выставьте права 700 на каталог, и файлы в нём(рекурсивно), и скорее всего ваша проблема решится. У меня было такое, и вывод был как у вас с включенной вербосити...

lucentcode ★★★★★
()
Ответ на: комментарий от drBatty

Верно. Копировать known_host нельзя. ssh сама создаёт этот файл, и добавляет в него известные хосты. А посему этот файл можно удалить.

lucentcode ★★★★★
()
Ответ на: комментарий от drBatty

нет, просто отредактировал с первого компа данные, но с правами там все точно, перепроверил дважды.

talifero
() автор топика
Ответ на: комментарий от lucentcode

id_rsa.pub не должен быть rw-r--r.

неправильно. Этот файл можно и нужно передавать на другие системы другим юзерам. Потому права на него должны разрешать чтение всем.

Выставьте права 700 на каталог, и файлы в нём(рекурсивно)

про стеклянный член напомнило. Ну можно конечно…

drBatty ★★
()
Ответ на: комментарий от talifero

нет, просто отредактировал с первого компа данные

файл НЕ НУЖНО править и редактировать. Его нужно удалить. Чужой файл не подходит. Файлы id_rsa{,.pub} тоже нужны свои. Это ключ (открытая и закрытая часть), делаются программой ssh-keygen.

А вот файл ~/.ssh/authorized_keys содержит ключи тех, кому можно суда заходить. Т.е. если с лондона можно входить в вильнюс, надо взять id_rsa.pub из лондона, и добавить его в ~/.ssh/authorized_keys вильнюса. Делается это с помощью флешки или утилитой ssh-copy-id.

drBatty ★★
()
Ответ на: комментарий от drBatty

Не помогает с этими правами:

drwx------  2 talifero talifero 4096 апр.  13 14:21 .
drwxr-xr-x 71 talifero talifero 4096 апр.  14 15:57 ..
-rw-------  1 talifero talifero  812 авг.  26  2012 authorized_keys
-rw-------  1 talifero talifero 1679 авг.   2  2012 id_rsa
-rw-------  1 talifero talifero  403 авг.   2  2012 id_rsa.pub
-rw-------  1 talifero talifero  222 апр.  13 14:27 known_hosts
-rw-------  1 talifero talifero  222 апр.  13 14:21 known_hosts.old
-rw-------  1 talifero talifero  403 авг.  15  2012 known_hosts.pub

сделайте на второй машине ключ id_rsa от имени простого юзера запустите ssh-keygen. А то там у вас почему-то такого ключа нет.

Я пробовал, но потом сносил ssh полностью со всеми ключарями. Сделаю еще.

talifero
() автор топика
Ответ на: комментарий от talifero

Я пробовал, но потом сносил ssh полностью со всеми ключарями.

с одной стороны всё было правильно, а с другой ты решил схитрить. Вот и не взлетело. Ну сотри всё(~/.ssh/), и сделай ещё раз, правильно.

drBatty ★★
()

Вход по паролю нужно запрещать в конфиге сервера (sshd_config), а не в конфиге клиента.

И потом я не понял, что вам нужно. У вас не заработала авторизация по паролю и вы стали делать авторизацию по ключу?

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.