Conexión, autenticación y comandos SSH retrasados

Conexión, autenticación y comandos SSH retrasados

La computadora de mi casa, una Mac con OS X 10.8.5, normalmente acepta conexiones SSH a través de Internet (tengo un puerto reenviado) pero está inactiva en este momento. A veces puede despertarse por diversos motivos mientras estoy fuera de casa. Quiero enviarle algunos comandos SSH pero no puedo sentarme y seguir intentándolo hasta que se despierte.

¿Existe una forma sencilla, que no sea AppleScript, de retrasar una conexión SSH, la autenticación de contraseña y la entrada de comandos hasta que la computadora host responda? Estoy usando una Mac fuera de casa, pero me gustaría saber una manera de hacerlo en cualquier sistema operativo basado en Unix. Normalmente, se agota el tiempo de espera después de aproximadamente un minuto de intentar conectarse.

Sé que en la mayoría de los emuladores de terminal, puedes escribir comandos mientras se ejecutan los procesos de bloqueo, y se ejecutarán una vez que finalicen esos procesos. Un ejemplo es escribir git push foojusto después git commit -a -m "foo"mientras git commit -a -m "foo"aún se está ejecutando; git presionará una vez que haya terminado de comprometerse. Pensé que podría haber algún truco para hacer algo como esto con ssh a través de un emulador de terminal.

Respuesta1

Puede verificar con ping si su máquina se enciende y luego ejecutar uno o varios comandos ssh. Tenga en cuenta que deberá configurar la autenticación basada en certificados en su host. Aquí hay un pequeño script basado en BASH de GNU/Linux, pero supongo que puedes convertirlo a cualquier Mac OS X que esté usando.

#/bin/bash   
hostup=0
while [ $hostup -ne 1 ]; do
    ping -c 4 <hostname or IP>
    if [ $? -eq  0 ]; then
        ssh username@hostname <command to execute>
        hostup=1;
done

Solo un comando por línea SSH y si desea utilizar parámetros, debe citar su comando. Si va a ejecutar los mismos comandos todo el tiempo, tal vez sea necesario un script en la máquina de su hogar.

información relacionada