J'ai créé un fichier plist pour remplacer une xinetd que j'ai utilisé avec succès sous Windows (Cygwin) et Linux pour diffuser en continu une imapd à partir d'un serveur distant via ssh
sur un port de l'hôte local.
El plutil
indique que ma configuration est correcte. launchctl load path-to-plist
fonctionne sans erreur.
Quand je cours launchctl list
l'agent ne s'affiche pas. Lorsque j'essaie de me connecter au port sur l'hôte local, j'obtiens un refus de connexion.
Voici mon fichier 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>com.my.ssh_tunnel</string>
<key>Program</key>
<string>/usr/bin/ssh</string>
<key>ProgramArguments</key>
<array>
<string>-F /Users/userx/.ssh/config</string>
<string>dname /usr/sbin/imapd</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>dname-imapd</string>
<key>SockType</key>
<string>stream</string>
<key>SockProtocol</key>
<string>TCP</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Disabled</key>
<false/>
<key>Wait</key>
<false/>
</dict>
<key>EnvironmentVariables</key>
<dict>
<key>SSH_AUTH_SOCK</key>
<string>/Users/userx/.ssh-agent.sock</string>
</dict>
</dict>
</plist>
J'ai ajouté une ligne dans /etc/services pour dname-imapd et un port non attribué (49022). En fin de compte, je l'utiliserai en conjonction avec ssh-agent (pour que cela fonctionne "sans mot de passe") et Thunderbird pour récupérer le courrier d'un système très verrouillé.
Il y a essentiellement deux questions ici. Premièrement, comment puis-je savoir que mon agent est chargé (et comment puis-je le confirmer) ? Deuxièmement, est-ce que mon plist est correct ?
Voici mon original xinetd config :
service imapssh
{
disable = no
type = UNLISTED
port = 2208
socket_type = stream
protocol = tcp
wait = no
server = /usr/bin/ssh
server_args = dname /usr/sbin/imapd
user = userx
}
Merci pour toute aide. Cela me rend un peu fou.
Ceci sur un Macbook Pro El Capitan.
J'ai également essayé un tunnel ssh direct, mais cela ne fonctionne pas vraiment (avant que quelqu'un ne le suggère). À moins que quelqu'un ne sache comment le faire fonctionner comme inetd et se reproduisent à chaque fois que le client de messagerie se connecte au port.