1 votos

¿Registro para SSHD cuando se inicia desde Launchd con la opción `d`?

Estoy trabajando en OS X 10.8.5, totalmente parcheado. Tengo un servidor OpenSSH actualizado instalado en /usr/local/sbin escuchando en el puerto 1522. Los intentos de conexión dan como resultado _ssh_exchange_identification: Connection closed by remote host_ . sudo grep 'sshd' /var/log/* 2>/dev/null en el servidor no devuelve casi nada, así que estoy tratando de reunir más información en el servidor sobre la causa.

Según man sshd(8) , -d es el modo de depuración y envía la salida de depuración verbosa al error estándar. He añadido -d a ProgramArguments en el plist, pero el plist también establece StandardErrorPath a /dev/null . Así que supongo que la información de depuración se descarta.

He comprobado launchctl(1) pero no veo qué debo hacer para modificar StandardErrorPath para que se registre en alguna parte. La página de manual ni siquiera discute el par nombre/valor.

¿Cómo debo cambiar la configuración para que el registro de depuración se registre en algún lugar, y yo sepa dónde está ese "algún lugar"?


$ cat /System/Library/LaunchDaemons/ssh-7.1.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-v7.1</string>
    <key>Program</key>
    <string>/usr/local/sbin/sshd</string>
    <key>ProgramArguments</key>
    <array>
        <string>-i -d</string>
    </array>
    <key>Sockets</key>
    <dict>
            <key>Listeners</key>
            <dict>
                    <key>SockServiceName</key>
                    <string>1522</string>
            </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>
</dict>
</plist>

2voto

Kevin Puntos 2479
  1. Para añadir el -d a sshd, debe añadirse como un nuevo elemento al array:

    <string>-d</string>

    La sección debería ser así:

    <key>ProgramArguments</key>
        <array>
            <string>-i</string>
            <string>-d</string>
        </array>
  2. En lugar de editar los archivos plist directamente, puede utilizar /usr/libexec/PlistBuddy (-h para mostrar la ayuda).

  3. Hay una utilidad script ssh-util.rb que puede activar/desactivar el registro. Forma parte del OpenSSH-189 paquete encontrado en: opensource.apple.com.

    Enlace a ssh-util.rb

    Aquí están los comandos necesarios para ejecutar (como se produce desde el ruby script):

    /usr/bin/ruby ./ssh-util.rb -l on -v --debug --dryrun

    o manualmente:

    sudo /usr/libexec/PlistBuddy -c "add :ProgramArguments:2 string '-ddd'" /System/Library/LaunchDaemons/ssh.plist
    sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    sudo launchctl load /System/Library/LaunchDaemons/ssh.plist
    sudo touch /var/run/com.openssh.sshd-asl-enabled
  4. Cuando termine de depurar, tendrá que ejecutar cualquiera de los dos:

    /usr/bin/ruby ./ssh-util.rb -l off -v --debug --dryrun 

    o manualmente:

    sudo /usr/libexec/PlistBuddy -c "Delete :ProgramArguments:2" /System/Library/LaunchDaemons/ssh.plist
    sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    sudo launchctl load /System/Library/LaunchDaemons/ssh.plist
    sudo rm -f /var/run/com.openssh.sshd-asl-enabled

Notas sobre el registro en OS X

0voto

Jakuje Puntos 318

Para registrar adecuadamente los eventos de sshd no debes poner -d swiches, ya que está reservado para la depuración, pero debería utilizar sshd_config (no estoy seguro de dónde se encuentra en OSX).

En sshd_config , existe la opción LogLevel , que puede ajustar a sus necesidades, básicamente el nivel más verboso es DEBUG3 , que le proporciona mucha información útil para la depuración.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X