¿Cuál es la mejor manera de hacer scp
de 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 scp
del 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 ...
fuente
Respuestas:
id_rsa
para ti mismo; sin embargo,id_rsa.pub
que es su clave pública, puede copiarse a los servidores a los que desea tener acceso. Concatenarlos al final de~/.ssh/authorized_keys
.~/.ssh/authorized_keys
si aún no se ha creado; de lo contrario, solo agregue al final del archivo, usandocat id_rsa.pub >>~/.ssh/authorized_keys
.fuente
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_keys
archivo 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
fuente
También debe verificar los permisos en los distintos archivos y directorios:
Su directorio personal no debe ser editable por nadie más que usted.
fuente
En caso de que configure la clave generada desde,
ssh-keygen
pero 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: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ó utilizandossh-keygen
. Necesita agregar estoid_rsa.pub
en el servidor de destino.fuente
Yo haría lo siguiente:
Esto copia la clave del cliente al servidor. Necesitará la contraseña del servidor para que agregue su clave a su anillo.
Como mínimo, desactivaría la autenticación de contraseña.
fuente