es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script SCP con clave pública.

Necesito configurar un script para copiar algunos archivos desde un servidor Ubuntu a otro.

Estoy intentando configurar este script:

#!/bin/sh

#Monitoring
for i in 192.168.0.10 192.168.0.11;
do
  su customuser -l -c "scp -oStrictHostKeyChecking=accept-new -oPasswordAuthentication=no -oBindAddress=0.0.0.0 -q -r /tmp/log/*log customuser@${i}:/data/logs/"
done

Recibo este log:

Executing: program /usr/bin/ssh host 192.168.0.10, user customuser, command scp -v -r -d -t /data/logs/
lost connection

Puedo conectarme a la cuenta en el servidor remoto. Pero cuando intento ejecutar el script, los logs son:

debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /data/customuser/.ssh/id_rsa
debug3: sign_and_send_pubkey: RSA SHA256:xxxxxxxx
debug3: sign_and_send_pubkey: signing using rsa-sha2-512 SHA256:xxxxxxx
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
Connection closed by 192.168.0.10 port 22

Copié la clave privada en los servidores remotos y en el servidor remoto existe el mismo usuario customuser. ¿Cómo puedo comprobarlo en el servidor remoto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para verificar en el servidor remoto, puede intentar los siguientes pasos:

    1. Inicie sesión en el servidor remoto utilizando la cuenta de usuario personalizada (customuser).
    2. Compruebe si el directorio .ssh existe en el directorio de inicio de la cuenta de usuario personalizada. Si no existe, ejecute el siguiente comando para crearlo:
    mkdir ~/.ssh
    
    1. Compruebe si el archivo authorized_keys existe en el directorio .ssh. Si no existe, ejecute el siguiente comando para crearlo:
    touch ~/.ssh/authorized_keys
    
    1. Asegúrese de que el archivo authorized_keys tenga los permisos correctos. Solo debe ser escribible por el propietario:
    chmod 600 ~/.ssh/authorized_keys
    
    1. Abra el archivo authorized_keys en un editor de texto y agregue el contenido de la clave pública que está utilizando para la autenticación. Asegúrese de que la clave esté en una sola línea y que no haya saltos de línea.
    2. Guarde el archivo authorized_keys y salga del editor.

    3. Intente ejecutar el script nuevamente y vea si funciona.

    Si los pasos anteriores no funcionan, también puede intentar verificar los registros del servidor SSH en el servidor remoto para ver si hay algún mensaje de error que pueda brindarle más información sobre el problema.

Comments are closed.