Ho creato un file plist per sostituire un processo xinetd che ho usato con successo in Windows (Cygwin) e Linux per trasmettere una connessione imapd da un server remoto tramite ssh
su una porta sull'host locale.
Il comando plutil
dice che la mia configurazione è OK. launchctl load path-to-plist
viene eseguito senza errori.
Quando eseguo launchctl list
l'agente non viene visualizzato. Quando provo a connettermi alla porta sul localhost, ottengo la connessione rifiutata.
Ecco il mio file 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>
Ho aggiunto una riga a / etc / services per dname-imapd e una porta non assegnata (49022). In definitiva userò questo in congiunzione con ssh-agent (per rendere questo lavoro 'senza password') e Thunderbird per recuperare la posta da un sistema molto bloccato.
Qui ci sono essenzialmente due domande. Uno, come faccio a sapere che il mio agente viene caricato (e come posso confermarlo)? Due, il mio plist è effettivamente corretto?
Ecco la mia configurazione originale xinetd :
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
}
Grazie per l'aiuto. Questo mi sta facendo impazzire.
Questo è su un MacBook Pro El Capitan.
Inoltre, ho provato un tunnel ssh diretto ma non funziona (prima che qualcuno lo suggerisca). A meno che qualcuno non sappia come farlo funzionare come inetd e spawn ogni volta che il client di posta si connette alla porta.