5

I have a SSH access to the server with working sendmail provided by my hoster. I want to configure my local sendmail to use remote server as a relay. How can I do that? Is it posiible at all?

Note: I can write script to run something like ssh user@host sendmail ... but it seems to me like there is a better solution.

1 Answer 1

4

Prepare SSH

Locally, create a new SSH key without password. In these examples, it will be located at /etc/mail/ssh-sendmail-key and owned by the MAILUSER user. Change MAILUSER to whatever Unix account your local system uses: postfix, sendmail, mail, ... Using root or nobody is not recommended.

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

Append the contents of /etc/mail/ssh-sendmail-key.pub to the server's authorized_keys file:

ssh-rsa AAAA....

Postfix

Create a ssh transport in 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

In main.cf, add:

default_transport = ssh

Exim

Router:

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

Transport:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.