realizar cat a través de ssh, enviar texto o archivo a través de ssh

realizar cat a través de ssh, enviar texto o archivo a través de ssh

Saludos estoy haciendo un script para automatizar el envío de claves públicas pero no puedo enviar mi archivo o variable por ssh ya sea por «echo o cat»

Respuesta1

Si desea enviar un archivo a un servidor remoto, puede utilizar scp.

Del hombre scp:

scp copia archivos entre hosts en una red. Utiliza ssh(1) para la transferencia de datos, utiliza la misma autenticación y proporciona la misma seguridad que ssh(1). A diferencia de rcp(1), scp solicitará contraseñas o frases de contraseña si son necesarias para la autenticación.

Uso básico:

scp user@origin:/path/to/file user@target:/path/to/file

Suponiendo que desea transferir ejemplo.txt desde el directorio actual a un control remoto SERVERcon el mismo nombre en una carpeta llamada ejemplo autenticándose como raíz:

scp example.txt root@SERVER:/example/example.txt

Respuesta2

Para transferir claves públicas a servidores remotos, existe una utilidad dedicada para ello.ssh-copia-id.

Encontrará arriba un script que puede utilizar para automatizar esta tarea:

#!/bin/sh
while read server ; do
   timeout 10 ssh-copy-id -i <public_key_path> <user>@$server
done < <list_of_servers.txt>

PD: Reemplace las constantes entre <> por sus propios valores.

Respuesta3

Puede usarlo sshpassen su secuencia de comandos para acceder al servidor sin ingresar la contraseña cada vez, como:

sshpass -p 'PASSWORD' ssh USER@SERVER ssh-copy-id USER@SERVER

También puedes usar -fpara escribir la contraseña en un archivo si no quieres escribirla en la línea de comando (está en texto sin cifrar en ambos casos) para obtener una lista de servidores llamada servers.list

for SERVER in $(cat servers.list)
do
sshpass -p 'PASSWORD' ssh USER@$SERVER ssh-copy-id USER@$SERVER
done

información relacionada