通过 SSH 使用 sendmail

Ser*_*gey 5 ssh sendmail relay

我可以通过 SSH 访问sendmail我的主机提供的服务器。我想将我的本地配置sendmail为使用远程服务器作为中继。我怎样才能做到这一点?有可能吗?

注意:我可以编写脚本来运行类似的东西,ssh user@host sendmail ...但在我看来有更好的解决方案。

use*_*686 4

准备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}
Run Code Online (Sandbox Code Playgroud)

将内容附加/etc/mail/ssh-sendmail-key.pub到服务器的authorized_keys文件中:

ssh-rsa AAAA....
Run Code Online (Sandbox Code Playgroud)

后缀

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
Run Code Online (Sandbox Code Playgroud)

在 中main.cf,添加:

default_transport = ssh
Run Code Online (Sandbox Code Playgroud)

进出口银行

路由器:

ssh:
    driver = manualroute
    domains = ! +local_domains
    transport = ssh
    route_list = * foo
Run Code Online (Sandbox Code Playgroud)

运输:

ssh:
    driver = pipe
    user = MAILUSER
    command = /usr/bin/ssh -i /etc/mail/ssh-sendmail-key myhostserver /usr/sbin/sendmail -i $RECIPIENT
Run Code Online (Sandbox Code Playgroud)