configure ssh launchctl

1

Me gustaría configurar sshd .

Mi ssh.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>Disabled</key>
<true/>
<key>Label</key>
<string>com.openssh.sshd</string>
<key>Program</key>
<string>/usr/libexec/sshd-keygen-wrapper</string>
<key>ProgramArguments</key>
<array>
    <string>/usr/sbin/ssd</string>
    <string>-i</string>
    <string>-p 2222</string>
    <string>-f /etc/sshd_config</string>
</array>
<key>Sockets</key>
<dict>
    <key>Listeners</key>
    <dict>
        <key>SockServiceName</key>
        <string>ssh</string>
        <key>Bonjour</key>
        <array>
            <string>ssh</string>
            <string>sftp-ssh</string>
        </array>
    </dict>
</dict>
<key>inetdCompatibility</key>
<dict>
    <key>Wait</key>
    <false/>
</dict>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>SHAuthorizationRight</key>
<string>system.preferences</string>

Y el problema es con los argumentos del programa. Cuando recargo la configuración ejecutando:

sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

ssh sigue escuchando en el puerto 22.

¿Qué estoy haciendo mal?

    
pregunta łobuz 18.08.2013 - 11:41

1 respuesta

0

No he intentado esto, pero puedo ver dos posibles problemas

  1. los argumentos con espacios deben ser dos argumentos, por ejemplo, <string>-p 2222</string> debería ser <string>-p</string><string>2222</string>

  2. Desde launchd.plist página de manual

  

Esta clave se asigna al segundo argumento de execvp (3). ... Tenga en cuenta: muchas personas están confundidas por esta clave. Por favor, lea cuidadosamente el execvp (3)!

la página man de execvp (3) dice que los argumentos son nombre de archivo, arg0, arg1, ... y que arg0 es el nombre del archivo, por lo que su primer argumento debería ser /usr/libexec/sshd-keygen-wrapper Programa repetitivo.

Una forma más sencilla podría ser eliminar el Programa por completo y solo tener ProgramArguments o simplemente usar el Programa y dar el comando como si se hubiera escrito en la línea de comandos.

Otra forma de facilitar esto es usar un programa GUI como Lingon o LaunchControl

    
respondido por el Mark 18.08.2013 - 15:33

Lea otras preguntas en las etiquetas