1

У меня есть сеть из 3 машин: один сервер (192.168.200.1), подключенный к внешнему миру, и две машины-близнецы (192.168.200.2 и 192.168.200.3), подключенные к серверу через коммутатор (настройка по умолчанию, фильтрация отсутствует).

На всех машинах установлен Debian, открыт порт 22, и я хочу получить доступ через ssh. Я могу получить доступ с сервера к twin2 с помощью ssh, но если я пытаюсь получить доступ к twin1, он откажет, потому что неверный пароль (но он правильный). Все машины имеют одинаковый пароль root без брандмауэра.

Если я подключаюсь с сервера к twin2 (используя ssh), а затем с twin2 на twin1, это работает! twin1 не может видеть сервер.

/etc/ssh/sshd_config и конфигурация маршрута одинаковы для двух компьютеров

route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.200.1   0.0.0.0         UG    0      0        0 eth0
192.168.200.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

На сервере видны обе машины:

root@server:# traceroute 192.168.200.2
traceroute to 192.168.200.2 (192.168.200.2), 30 hops max, 60 byte packets
 1  twin1 (192.168.200.2)  0.036 ms  0.012 ms  0.010 ms
root@server:# traceroute 192.168.200.3
traceroute to 192.168.200.3 (192.168.200.3), 30 hops max, 60 byte packets
 1  twin2 (192.168.200.3)  0.140 ms  0.122 ms  0.115 ms

twin1 см. сервер:

root@twin1:~# traceroute 192.168.200.1
traceroute to 192.168.200.1 (192.168.200.1), 30 hops max, 60 byte packets
 1  server (192.168.200.1)  0.106 ms  0.087 ms  0.074 ms

twin2 не видит сервер:

root@twin2:~# traceroute 192.168.200.1
traceroute to 192.168.200.1 (192.168.200.1), 30 hops max, 60 byte packets
 1  * * *
 ....
 30 * * *

Выход SSH

root@server:~# ssh -v twin2 (this work and even don't ask for passwd) 
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to twin2 [192.168.200.3] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-5
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Debian-5+deb8u1
debug1: match: OpenSSH_6.7p1 Debian-5+deb8u1 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr umac-64-etm@openssh.com none
debug1: kex: client->server aes128-ctr umac-64-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA d4:0c:32:b6:84:2f:fa:89:cf:40:fd:b0:b8:47:d4:d6
debug1: Host 'twin2' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:3
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: /root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to twin2 ([192.168.200.3]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8

(это не работает)

root@server:~# ssh -v twin1
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to twin1 [192.168.200.2] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-5
debug1: Remote protocol version 2.0, remote software version         OpenSSH_6.7p1 Debian-5
debug1: match: OpenSSH_6.7p1 Debian-5 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr umac-64-etm@openssh.com none
debug1: kex: client->server aes128-ctr umac-64-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 19:9c:99:3f:a1:aa:4b:86:bc:2d:6f:9c:66:29:d9:07
debug1: Host 'twin1' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
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: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
root@twin1's password: 
debug1: Authentications that can continue: publickey,password
Permission denied, please try again

Если я проверяю /var/log/auth.log в twin1, когда сервер пытается подключиться через ssh, ничего не регистрируется! (так как соединение ssh никогда не достигнет его)

Любая помощь будет приветствоваться

1 ответ1

0

Мне кажется, что проблема не в SSH, а в базовой сети.

Я думаю, вы обнаружите, что проблема связана с вашим коммутатором - похоже, что TWIN1 настроен за портом, использующим NAT - Первое, что я хотел бы сделать, это заменить коммутатор и посмотреть, что произойдет.

Второе, что я хотел бы сделать, это отключить TCPDump и фактически сбросить то, что происходит на порте 22 на каждой из машин, когда SSH работает между ними. Это позволит пролить свет на поступающие пакеты и на их IP-адреса источника и назначения.

Я бы также внимательно посмотрел на MAC-адреса на каждом интерфейсе - интересно, если при клонировании машин вы клонировали MAC-адреса - это могло бы объяснить некоторые ваши проблемы - конечно, каждому интерфейсу нужен уникальный MAC-адрес - и можно переопределить MAC-адрес в программном обеспечении.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .