SCP de un servidor a otro sin solicitud de contraseña

19

¿Cuál es la mejor manera de hacer scpde un cuadro a otro sin solicitar una contraseña?

Hay dos servidores:

  • Servidor A (10.152.2.10): /home/oracle/export/files.txt

  • Servidor B (10.152.2.11): /home/oracle/import/

Si deseo transferir los archivos usando scpdel servidor A al servidor B sin que se me solicite ingresar una contraseña

[ejecutando esto desde el servidor A, /home/oracle/export/]

scp files.txt [email protected]:/home/oracle/import

Esto me solicitaría una contraseña al ingresar el comando.

Entiendo que se requiere generar un keygen y copiarlo en el Servidor A. Así [en el servidor A]:

ssh-keygen -t rsa

Esto me da dos archivos almacenados en /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. ¿Se supone que debo copiar los dos archivos ( id_rsa, id_rsa.pub) en el servidor B /home/oracle/.ssh?

Mientras realizaba una búsqueda en Google sobre esto, algunos artículos mencionaron sobre agregar / concatenar esto a claves_autorizadas.

2. ¿Se supone que debo crear este archivo por mi cuenta?

Parece que estoy confundido sobre cuál es la forma correcta de hacer esto.

Por cierto, los dos servidores están ejecutando Suse Linux Enterprise Edition 9 ...

jimmij
fuente
1
Pruebe 'keychain': gentoo.org/proj/en/keychain

Respuestas:

16
  1. No, te guardas id_rsapara ti mismo; sin embargo, id_rsa.pubque es su clave pública, puede copiarse a los servidores a los que desea tener acceso. Concatenarlos al final de ~/.ssh/authorized_keys.
  2. Sí, puede crear ~/.ssh/authorized_keyssi aún no se ha creado; de lo contrario, solo agregue al final del archivo, usando cat id_rsa.pub >>~/.ssh/authorized_keys.
mipadi
fuente
11

También hay una herramienta que ordena todo esto para usted llamado ssh-copy-id.

Anexará la clave en su agente si tiene una ejecutándose en el authorized_keysarchivo y la creará si no existe con los permisos correctos. Si no está ejecutando un agente, puede especificar la clave para presionar -i:ssh-copy-id -i ~/.ssh/id_rsa

mauilion
fuente
5

También debe verificar los permisos en los distintos archivos y directorios:

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

Su directorio personal no debe ser editable por nadie más que usted.

dr-jan
fuente
0

En caso de que configure la clave generada desde, ssh-keygenpero aún así la transferencia sin contraseña no funciona, verifique la clave pública utilizada en la máquina de origen en el comando de modo detallado de la siguiente manera:

sftp -v -oPort=22 userid@server

Por lo general, se refiere a la clave pública en la /home/<user>/.ssh/id_rsa.pub que puede ser diferente de la que generó utilizando ssh-keygen. Necesita agregar esto id_rsa.puben el servidor de destino.

Raj
fuente
0

Yo haría lo siguiente:

En el cliente:

ssh-keygen -t rsa
ssh-copy-id [email protected]

Esto copia la clave del cliente al servidor. Necesitará la contraseña del servidor para que agregue su clave a su anillo.

  • La autenticación de contraseña debe estar activada o debe entregar personalmente el archivo de claves al servidor.

En el servidor:

Como mínimo, desactivaría la autenticación de contraseña.

Michael Prokopec
fuente