sshd на Mac больше не принимает соединения в режиме inetd (-i), но в режиме "не отсоединять" (-D), как это исправить?

Несколько недель назад вход в ssh был невозможен для удаленного Mac. Возникла проблема при обновлении Webmin до версии 1.550 и / или изменении настроек с помощью webmin.

Использование: * Mac OS X 10.6.5 + Webmin 1.550 + Virtualmin 3.66GPL

Ожидаемые результаты: Нет проблем при входе с использованием ssh.

Фактические результаты: ssh: подключение к хосту host.domain.tld порт 22: истекло время ожидания операции

Регрессия: После дополнительного расследования выясняется, что:

  1. sshd правильно запускается, когда он настроен на отключение (-D), используя $ sudo /usr/sbin/sshd -D -d -d -d -e
debug2: load_server_config: имя файла /etc/sshd_config
debug2: load_server_config: done config len = 493
debug2: parse_server_config: config /etc/sshd_config len 493
debug3: /etc/sshd_config:14 настройка протокола 2
debug3: / etc / sshd_config: 30 настройка SyslogFacility AUTHPRIV
debug3: /etc/sshd_config:32 установка LogLevel DEBUG3
debug3: /etc/sshd_config:39 установка MaxAuthTries 3
debug3: /etc/sshd_config:108 настройка UseDNS no
debug3: /etc/sshd_config:111 установка MaxStartups 5
debug3: /etc/sshd_config:119 настройка подсистемы sftp /usr/libexec/sftp-server
debug3: /etc/sshd_config:121 установка IgnoreRhosts да
debug3: / etc / sshd_config: 122 настройка IgnoreUserKnownHosts no
debug3: /etc/sshd_config:123 установка PrintMotd да
debug3: /etc/sshd_config:124 установка StrictModes да
debug3: /etc/sshd_config:125 настройка RSAAuthentication да
debug3: /etc/sshd_config:126 установка PermitEmptyPasswords no
debug3: /etc/sshd_config:127 установка PasswordAuthentication да
debug3: /etc/sshd_config:128 установка DenyGroups deniedssh
debug3: /etc/sshd_config:129 установка PubkeyAuthentication yes
debug3: /etc/sshd_config:130 установка GatewayPorts no
debug3: /etc/sshd_config:131 настройка AllowTcpForwarding yes
debug3: /etc/sshd_config:132 установка KeepAlive да
debug1: версия sshd OpenSSH_5.2p1
debug3: не файл ключа RSA1 / etc / ssh_host_rsa_key.
debug1: чтение секретного ключа PEM выполнено: введите RSA
debug1: закрытый ключ хоста: #0 тип 1 RSA
debug3: не файл ключа RSA1 / etc / ssh_host_dsa_key.
debug1: чтение секретного ключа PEM выполнено: тип DSA
debug1: закрытый ключ хоста: DSA № 1 типа 2
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-D'
debug1: rexec_argv[2]='-d'
debug1: rexec_argv[3]='-d'
debug1: rexec_argv[4]='-d'
debug1: rexec_argv[5]='-e'
debug2: настройка fd 3 O_NONBLOCK
debug1: привязка к порту 22 на::.
Сервер прослушивает:: порт 22.
debug2: настройка fd 4 O_NONBLOCK
debug1: привязка к порту 22 на 0.0.0.0.
Сервер прослушивает порт 0.0.0.0 22.
debug1: очистка fd 5 O_NONBLOCK
debug1: сервер не будет разветвляться при работе в режиме отладки.
debug3: send_rexec_state: ввод конфигурации fd = 8, лен 493
debug3: ssh_msg_send: тип 0
debug3: send_rexec_state: сделано
debug1: запуск rexec в 5 из 5 newsock 5 pipe -1 sock 8
debug3: recv_rexec_state: ввод fd = 5
debug3: вход в ssh_msg_recv
debug3: recv_rexec_state: сделано
debug2: parse_server_config: config rexec len 493
debug3: rexec:14 настройка протокола 2
debug3: rexec:30 настройка SyslogFacility AUTHPRIV
debug3: rexec:32 настройка LogLevel DEBUG3
debug3: rexec:39 установка MaxAuthTries 3
debug3: rexec:108 настройка UseDNS нет
debug3: rexec:111 установка MaxStartups 5
debug3: rexec:119 Настройка подсистемы sftp    /usr/libexec/sftp-server
debug3: rexec:121 установка IgnoreRhosts да
debug3: rexec:122 настройка IgnoreUserKnownHosts no
debug3: rexec:123 установка PrintMotd да
debug3: rexec:124 установка StrictModes да
debug3: rexec:125 настройка RSAAuthentication да
debug3: rexec:126 установка PermitEmptyPasswords нет
debug3: rexec:127 установка PasswordAuthentication да
debug3: rexec:128 установка DenyGroups deniedssh
debug3: rexec:129 настройка PubkeyAuthentication да
debug3: rexec:130 настройка GatewayPorts no
debug3: rexec:131 настройка AllowTcpForwarding yes
debug3: rexec:132 установка KeepAlive да
debug1: версия sshd OpenSSH_5.2p1
debug3: не файл ключа RSA1 / etc / ssh_host_rsa_key.
debug1: чтение секретного ключа PEM выполнено: введите RSA
debug1: закрытый ключ хоста: #0 тип 1 RSA
debug3: не файл ключа RSA1 / etc / ssh_host_dsa_key.
debug1: чтение секретного ключа PEM выполнено: тип DSA
debug1: закрытый ключ хоста: DSA № 1 типа 2
debug1: сокеты inetd после подключения: 3, 3
debug3: аудит BSM: соединение от порта 1.131.247 53137
debug3: аудит BSM: идентификатор компьютера iptype 4 010101d9 00000000 00000000 00000000
Подключение от порта 1.131.247 53137

Успешное соединение следует...

  1. sshd больше не запускает и не принимает входящие соединения в режиме inetd (-i), используя $ sudo /usr/sbin/sshd -i -d -d -d -e
debug2: load_server_config: имя файла /etc/sshd_config
debug2: load_server_config: done config len = 493
debug2: parse_server_config: config /etc/sshd_config len 493
debug3: /etc/sshd_config:14 настройка протокола 2
debug3: / etc / sshd_config: 30 настройка SyslogFacility AUTHPRIV
debug3: /etc/sshd_config:32 установка LogLevel DEBUG3
debug3: /etc/sshd_config:39 установка MaxAuthTries 3
debug3: /etc/sshd_config:108 настройка UseDNS no
debug3: /etc/sshd_config:111 установка MaxStartups 5
debug3: /etc/sshd_config:119 настройка подсистемы sftp /usr/libexec/sftp-server
debug3: /etc/sshd_config:121 установка IgnoreRhosts да
debug3: / etc / sshd_config: 122 настройка IgnoreUserKnownHosts no
debug3: /etc/sshd_config:123 установка PrintMotd да
debug3: /etc/sshd_config:124 установка StrictModes да
debug3: /etc/sshd_config:125 настройка RSAAuthentication да
debug3: /etc/sshd_config:126 установка PermitEmptyPasswords no
debug3: /etc/sshd_config:127 установка PasswordAuthentication да
debug3: /etc/sshd_config:128 установка DenyGroups deniedssh
debug3: /etc/sshd_config:129 установка PubkeyAuthentication yes
debug3: /etc/sshd_config:130 установка GatewayPorts no
debug3: /etc/sshd_config:131 настройка AllowTcpForwarding yes
debug3: /etc/sshd_config:132 установка KeepAlive да
debug1: версия sshd OpenSSH_5.2p1
debug3: не файл ключа RSA1 / etc / ssh_host_rsa_key.
debug1: чтение секретного ключа PEM выполнено: введите RSA
debug1: закрытый ключ хоста: #0 тип 1 RSA
debug3: не файл ключа RSA1 / etc / ssh_host_dsa_key.
debug1: чтение секретного ключа PEM выполнено: тип DSA
debug1: закрытый ключ хоста: DSA № 1 типа 2
debug1: сокеты inetd после подключения: 3, 4
debug3: аудит BSM: соединение с НЕИЗВЕСТНОГО порта 65535
Аудит BSM: сбой getaddrinfo для UNKNOWN: имя узла или имя сервера указаны или неизвестны
debug3: аудит BSM: идентификатор компьютера iptype 0 00000000 00000000 00000000 00000000
Соединение с НЕИЗВЕСТНОГО порта 65535
SSH-2,0-OpenSSH_5.2

Соединение не может быть установлено.

Любое предложение в каком направлении искать исправление?

1 ответ

Это довольно нестандартное использование initd начать что-нибудь на Mac. Вместо, launchd используется, начиная с sshd в режиме ad hoc (то есть он не работает как обычный серверный демон, пока не постучат в дверь). Я подозреваю, что использование Linux-ориентированного Webmin для управления ssh усугубляет проблему, так как Webmin мало что знает о launchd,

Во-первых, убедитесь, что элемент ssh launchd настроен для загрузки, просто чтобы устранить очевидное.

sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

Это похоже на флажок Server Admin.app в настройках параметров, чтобы включить SSH. Проверьте системный журнал, чтобы увидеть, если launchctl жалуется на что-то.

Неясно, почему вы хотите, чтобы Webmin обрабатывал SSH, но конфигурация Apple по умолчанию может быть полезной.

Там есть элемент запуска /System/Library/LaunchDaemons называется sshd.plist. Этот файл XML указывает, что /usr/libexec/sshd-keygen-wrapper используется в качестве "программы", которая фактически запускает /usr/sbin/sshd используя флаг -i. (Программа sshd-keygen-wrapper представляет собой сценарий оболочки, который сначала устанавливает начальные ключи rsa и dsa в пустых домашних каталогах пользователей.) Однако sshd-keygen-wrapper также запускает sshd как exec /usr/sbin/sshd $@ и является доверенной / внесенной в белый список программой, что касается брандмауэра сокетов.

Вы также можете взять по умолчанию /etc/sshd_config из резервной копии или другого компьютера, чтобы устранить это как переменную в устранении неполадок.

Другие вопросы по тегам