He creado un archivo plist para reemplazar un xinetd proceso que he utilizado con éxito en Windows (Cygwin) y Linux para transmitir un imapd conexión desde un servidor remoto a través de ssh
en un puerto del localhost.
El plutil
dice que mi configuración está bien. launchctl load path-to-plist
se ejecuta sin errores.
Cuando corro launchctl list
el agente no se muestra. Cuando intento conectarme al puerto en el localhost, obtengo conexión rechazada.
Aquí está mi archivo 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>
He añadido una línea a /etc/servicios para dname-imapd y un puerto no asignado (49022). En última instancia, voy a utilizar esto junto con ssh-agent (para hacer que esto funcione 'sin contraseña') y Thunderbird para recuperar el correo de un sistema muy bloqueado.
Aquí hay esencialmente dos cuestiones. Una, ¿cómo sé que mi agente se está cargando (y cómo lo confirmo)? Dos, ¿es mi plist realmente correcto?
Aquí está mi original xinetd configurar:
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
}
Gracias por cualquier ayuda. Esto me está volviendo un poco loco.
Esto es en un Macbook Pro El Capitan.
Además, he probado con un túnel ssh directo pero no funciona realmente (antes de que alguien lo sugiera). A menos que alguien sepa cómo hacer que funcione como inetd y se genera cada vez que el cliente de correo se conecta al puerto.