Основываясь на информации, содержащейся в вопросе, нет оснований предполагать, что SSH-соединение вообще заканчивается на локальном компьютере.
Иногда я видел, как определенный порт переадресовывался с локального хоста на ssh-сервер на удаленном хосте. Тогда ssh user@localhost -p 12345
становится эквивалентным ssh user@remote.example.com
с очевидными отличиями от локального su
.
Причина такой настройки обычно заключается в том, что таким образом пользователям не нужно помнить или знать о remote.example.com
, и фактически они могут быть защищены брандмауэром, так что они не могут даже получить к нему прямой доступ. Это также позволяет администраторам прозрачно изменять способ маршрутизации фактического соединения.
Лучше всего перейти на High Sierra.
Если это невозможно по какой-либо причине, вы можете обойти эту ошибку, используя stunnel
и ретранслировать почту из постфикса в незашифрованном виде через локальный зашифрованный туннель в соответствии с этим руководством(все кредиты принадлежат Райнеру Мюллеру):
$ sudo port install stunnel certsync
/Library/LaunchDaemons/org.example.mail.plist
и поместите в него следующее:<!-- /Library/LaunchDaemons/org.example.mail.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.example.mail</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/stunnel3</string>
<string>-c</string>
<string>-r</string>
<string>smtp.gmail.com:587</string>
<string>-n</string>
<string>smtp</string>
<string>-v</string>
<string>2</string>
<string>-A</string>
<string>/opt/local/etc/openssl/cert.pem</string>
</array>
<key>UserName</key>
<string>nobody</string>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockNodeName</key>
<string>localhost</string>
<key>SockServiceName</key>
<string>555</string>
<key>SockType</key>
<string>stream</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
$ sudo launchctl load -w /Library/LaunchDaemons/org.example.mail.plist
nc localhost 555
/etc/postfix/main.cf
, чтобы постфикс использовал локальный туннель вместо прямого подключения к SMTP-серверу:relayhost = [localhost]:555
smtp_tls_security_level = may
(Уровень шифрования также должен быть снижен)
/etc/postfix/sasl_passwd
измените smtp.gmail.com:587
на localhost:555
sudo postmap hash:/etc/postfix/sasl_passwd
Теперь ваша почта должна работать как часы!
П.С. Используйте эту команду для просмотра почтовых журналов во время выполнения для отладки :
.log stream --predicate '(process == "smtpd") || (process == "smtp")' --debug
П.П.С. У меня установлен XCode 9.2. Это может быть необходимо для установки/запуска stunnel3.