web-dev-qa-db-ja.com

SSH経由のsendmailの使用

ホスティング業者から提供されたsendmailを使用して、サーバーにSSHでアクセスできます。リモートサーバーをリレーとして使用するようにローカルsendmailを構成したいと思います。どうやってやるの?それはまったく可能ですか?

注:ssh user@Host sendmail ...のようなものを実行するスクリプトを書くことはできますが、より良い解決策があるように思えます。

5
Sergey

SSHを準備する

ローカルで、パスワードなしで新しいSSHキーを作成します。これらの例では、/etc/mail/ssh-sendmail-keyに配置され、MAILUSERユーザーが所有します。 MAILUSERをローカルシステムが使用するUnixアカウントに変更します:postfixsendmailmail、... 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....

Postfix

master.cfsshトランスポートを作成します。

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
4
user1686