4

У меня есть SSH-доступ к серверу с работающим sendmail предоставленным моим хостером. Я хочу настроить свой локальный sendmail на использование удаленного сервера в качестве ретранслятора. Как я могу это сделать? Это вообще возможно?

Примечание: я могу написать скрипт для запуска что-то вроде ssh user@host sendmail ... но мне кажется, что есть лучшее решение.

1 ответ1

3

Подготовьте SSH

Локально создайте новый ключ SSH без пароля. В этих примерах он будет находиться по адресу /etc/mail/ssh-sendmail-key и принадлежит пользователю MAILUSER . Измените MAILUSER на любую учетную запись Unix, которую использует ваша локальная система: postfix , sendmail , mail , ... Использовать root или nobody не рекомендуется.

# ssh-keygen -f /etc/mail/ssh-sendmail-key -N ""
# chown MAILUSER /etc/mail/ssh-sendmail-key{,.pub}

Добавить содержимое /etc/mail/ssh-sendmail-key.pub в файл authorized_keys сервера:

ssh-rsa AAAA....

постфикс

Создайте транспорт ssh в master.cf:

ssh    unix    -       n       n       -       -       pipe
    user=MAILUSER argv=/usr/bin/ssh -i /etc/mail/ssh-sendmail-key myhostserver /usr/sbin/sendmail -i $recipient

В main.cf добавьте:

default_transport = ssh

Exim

маршрутизатор:

ssh:
    driver = manualroute
    domains = ! +local_domains
    transport = ssh
    route_list = * foo

Транспорт:

ssh:
    driver = pipe
    user = MAILUSER
    command = /usr/bin/ssh -i /etc/mail/ssh-sendmail-key myhostserver /usr/sbin/sendmail -i $RECIPIENT

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