1

Моя локальная сеть включает в себя настольный компьютер под управлением Linux (Debian Wheezy), MacBook с OS X Mavericks и модем-маршрутизатор; SSH с Linux-хостом и OS X-клиентом работает хорошо - нет проблем с подключением от клиента к хосту.

Кроме того, я попытался реализовать обратное - компьютер Linux также становится клиентом, а компьютер OS X также становится хостом. Но попытка ssh с клиента Linux на хост OS X приводит к

ssh_exchange_identification: Connection closed by remote host

Это происходит независимо от того, включен ли брандмауэр Mac.

Я пробовал многочисленные решения, предлагаемые поиском Google, в том числе на:

введите описание ссылки здесь введите описание ссылки здесь

(Система не позволяла мне публиковать больше ссылок.)

Я вполне уверен, что владельцы файлов, разрешения, конфигурации верны.

Один и тот же порт, скажем, 1234, настроен для ssh на каждом компьютере как хост и клиент; Команды netstat с обоих компьютеров показывают, что порт 1234 прослушивается. Ни DenyHosts, ни fail2ban не установлены.

На клиенте Linux /var/log/auth.log не выдает соответствующих сообщений.

Телнетинг от клиента к хосту дает

Connection closed by foreign host.

На хосте OS X во время попытки соединения ssh:

/var/log/appfirewall.log показывает

MacBook.local socketfilterfw[636] <Info>: sshd-keygen-wrapper: Allow TCP CONNECT (in:1 out:0)

/var/log/system.log показывает

MacBook.local com.apple.preference.security.remoteservice[662]: nsc_smb XPC: handle_event error : < Connection invalid >

Кажется, что проблема связана с хостом OS X и что ключ к ее решению может быть в этих сообщениях, но я не смог найти полезную информацию.

На MacBook Системные настройки> Безопасность и конфиденциальность> Брандмауэр> Параметры брандмауэра «Удаленный вход в систему (SSH)» и «sshd-keygen-wrapper» установлены на «Разрешить входящие подключения».

«Удаленный вход» включен в «Системные настройки»> «Общий доступ».

Что может быть причиной проблемы с ssh-соединением и как ее решить?

Дополнительная информация с момента публикации

Спасибо за ответы, но я уже сделал все, что описано в ссылках, включил удаленный вход с моим именем пользователя (alex) и перезапустил ssh на обоих компьютерах после каждого изменения, касающегося ssh, после чего перезагрузил оба компьютера. Также несколько раз переустанавливал ssh на компьютер с Linux и несколько раз генерировал новые ключи на обоих компьютерах.

Возможно, мне следовало уточнить, что в ssh_config для обоих клиентов

PasswordAuthentication no
PubkeyAuthentication yes

Вот запрошенный вывод с хоста OS X: (не уверен, насколько он полезен, потому что я изменил порт ssh с 22 по умолчанию, скажем, 1234)

MacBook:~ alex$ ssh -vvv localhost
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [::1] port 22.
debug1: connect to address ::1 port 22: Connection refused
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: connect to address 127.0.0.1 port 22: Connection refused
debug1: Connecting to localhost [fe80::1%lo0] port 22.
debug1: connect to address fe80::1%lo0 port 22: Connection refused
ssh: connect to host localhost port 22: Connection refused

Дополнительная уточняющая информация:

MacBook:~ alex$ ssh -vvv -p 1234 localhost
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [::1] port 1234.
debug1: connect to address ::1 port 1234: Connection refused
debug1: Connecting to localhost [127.0.0.1] port 1234.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/alex/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /Users/alex/.ssh/id_rsa type 1
debug1: identity file /Users/alex/.ssh/id_rsa-cert type -1
debug1: identity file /Users/alex/.ssh/id_dsa type -1
debug1: identity file /Users/alex/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: Connection closed by remote host
MacBook:~ alex$ 

Запрошенный вывод из клиента Linux:

alex@desktop:~$ ssh -v alex@MacBook.local
OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 102: Applying options for *
debug1: Connecting to MacBook.local [192.168.0.3] port 1234.
debug1: Connection established.
debug1: identity file /home/alex/.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/alex/.ssh/id_rsa-cert type -1
ssh_exchange_identification: Connection closed by remote host
alex@desktop:~$ 

После долгих усилий, чтобы заставить ssh работать с Linux в качестве хоста и OS X в качестве клиента, я решил, что сделать обратное будет относительно просто. Может и так, но не так далеко! Дальнейшая помощь будет высоко ценится.

Lars

MacBook:~ alex$ sudo sshd -t
Password:
/etc/sshd_config: No such file or directory
MacBook:~ alex$

Файл sshd_config находится в /private /etc /ssh, так же как ssh_config и файлы ключей ssh_host.

Задача решена

Я поместил копию sshd_config в /private /etc и сделал sudo sshd -t . Выходные данные дали ошибки форматирования, предполагающие ошибки стиля со ссылкой на rtf. Шрифт был Times. Я скопировал файл с компьютера Linux, и в процессе шрифт изменился с простого текста.

Я изменил файл sshd_config в /private /etc /ssh на обычный текст, переключил «Удаленный вход в систему» в «Системных настройках»> «Совместное использование на Mac», выполнил команду ssh из клиента Linux и смог подключиться к хосту OS X для первый раз.

Я раньше не сталкивался с командой sshd -t , поэтому спасибо Ларсу за то, что он привлек мое внимание и указал мне правильное направление. Решение было действительно простым, но определить его не удалось.

1 ответ1

0

Возможно, вам нужно включить удаленный доступ на вашем Mac. Следуй этим шагам..

  1. На вашем Mac откройте «Настройки общего доступа» и выберите «Удаленный вход»
  2. Укажите, какие пользователи могут войти в систему: Все пользователи или «Только эти пользователи».

Тогда вы должны быть в состоянии войти в него через команду.

ssh -v user@macOSX-hostname

Если он не подключается, обрежьте / вставьте все соединение, чтобы мы могли увидеть, где оно выходит из строя. -В должен дать вам некоторую информацию.

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