configura ssh launchctl

1

Vorrei configurare sshd .

Il mio 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>

E il problema è con gli argomenti del programma. Quando ricarico la configurazione eseguendo:

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

ssh è ancora in ascolto sulla porta 22.

Che cosa sto facendo male?

    
posta łobuz 18.08.2013 - 11:41
fonte

1 risposta

0

Non l'ho provato, ma vedo due possibili problemi

  1. gli argomenti con spazi dovrebbero essere due argomenti, ad es. <string>-p 2222</string> dovrebbe essere <string>-p</string><string>2222</string>

  2. Da un launchd.plist pagina man

This key maps to the second argument of execvp(3). ... Please note: many people are confused by this key. Please read execvp(3) very carefully!

la pagina man di execvp (3) dice che gli argomenti sono filename, arg0, arg1, ... e che arg0 è il nome del file quindi il tuo primo argomento dovrebbe essere /usr/libexec/sshd-keygen-wrapper ripetendo Program.

Un modo più semplice potrebbe essere quello di rimuovere del tutto il Programma e di avere solo ProgramArguments o semplicemente usare Program e dare il comando come se fosse stato digitato nella riga di comando.

Un altro modo per semplificare questo è utilizzare un programma con interfaccia grafica come Lingon o LaunchControl

    
risposta data 18.08.2013 - 15:33
fonte

Leggi altre domande sui tag