Cuando tiene habilitado el inicio de sesión sin contraseña, puede usar SSH para ejecutar el comando en el modo por lotes en una máquina remota o usar SCP para copiar archivos desde/hacia la máquina remota.
Si hay algunos problemas con el inicio de sesión sin contraseña, su programa por lotes puede terminar en un bucle o tiempo de espera.
En este artículo, revisemos cómo instruir a ssh/scp para que realice la operación solo si puede hacerlo sin esperar la contraseña.
Antes de probar esto, asegúrese de que el inicio de sesión sin contraseña esté configurado entre su host y host remoto.
1. Ejemplo de uso de ssh -o “Modo por lotes sí”
Si tiene habilitado el inicio de sesión sin contraseña, el siguiente ejemplo iniciará sesión en el host remoto y ejecutará el comando who sin solicitar la contraseña.
local-host# ssh ramesh@remote-host who
Si el inicio de sesión sin contraseña no está habilitado, solicitará la contraseña en el host remoto como se muestra a continuación.
local-host# ssh ramesh@remote-host who ramesh@remote-host's password:
Si usa ssh -o "BatchMode yes", entonces hará ssh solo si el inicio de sesión sin contraseña está habilitado; de lo contrario, devolverá un error y continuará.
local-host# ssh -o "BatchMode yes" ramesh@remote-host Command
Ejecución de comandos en modo por lotes mediante SSH:caso de éxito
local-host# ssh -o "BatchMode yes" ramesh@remote-host who .. [Note: This will display the output of remote-host's who command]
Ejecución de comandos en modo por lotes usando SSH — Caso de falla
local-host# ssh -o "BatchMode yes" ramesh@remote-host who Permission denied (publickey,password).
2. Ejemplo de uso de la opción scp -B
Si usa la opción scp -B, ejecutará scp solo si el inicio de sesión sin contraseña está habilitado; de lo contrario, saldrá inmediatamente sin esperar la contraseña.
$ scp -B file root@IP:PATH
SCP en modo por lotes:caso exitoso
local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp yp.conf 100% 84 0.1KB/s 00:00
SCP en modo por lotes:caso de falla
En este ejemplo, si scp es posible sin autenticación, el comando se ejecutará; de lo contrario, saldrá como se muestra a continuación.
local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp Permission denied (publickey,password). lost connection