Saltar al contenido principal
Servicio de soporte de OCLC

Carga de archivos de datos de clientes en curso mediante SFTP sin contraseña

Descubra cómo enviar y recuperar archivos utilizando la autenticación de par de claves pública/privada para SFTP sin contraseña con Linux.

Puedes enviar y recuperar archivos utilizando la autenticación de par de claves pública/privada para SFTP sin contraseña. Esto automatiza la entrega de archivos a OCLC y elimina la necesidad de introducir manualmente una contraseña cuando se utiliza una cuenta de intercambio de archivos de OCLC. También permite a su institución cambiar la clave periódicamente para mayor seguridad.

Por razones de seguridad, OCLC no admite la transmisión de la contraseña SFTP a través de una secuencia de comandos, pero en su lugar ofrece la solución de par de claves pública/privada para permitir que se escriban secuencias de comandos totalmente automatizadas para cargar y descargar en nuestro servidor.

Linux

Este procedimiento es para sistemas Linux. Aunque se utilizarían métodos similares para otros sistemas, OCLC ha probado este método utilizando Linux como máquina cliente SCP y SFTP. Se solicita una contraseña al cargar la clave pública, pero una vez reemplazada, los futuros inicios de sesión y transferencias de archivos no requieren contraseña.

Genera y carga tu clave pública

Para generar y cargar su clave pública en su cuenta de intercambio de archivos de OCLC:

  1. Genere un par de claves privada/pública en su máquina cliente y colóquelo en un archivo llamado /home/usuario1/.SSH/id_rsa.pub en su máquina local.
     Nota:  Si no está seguro de cómo generar un par de claves privada/pública, puede utilizar el método descrito a continuación, que coloca automáticamente el archivo de clave privada/pública en el lugar correcto de su máquina local.
  2. Cargue su clave pública en .SSH/authorized_keys en su cuenta de intercambio de archivos de OCLC.

 Nota: No elimine el archivo .SSH/authorized_keys existente antes de cargar el nuevo. El nuevo archivo que cargue sustituirá automáticamente al archivo existente, conservando sus permisos y propiedades de propiedad. Si elimina el archivo existente antes de cargar el nuevo archivo, no tendrá suficientes derechos en el sistema para establecer la propiedad de grupo necesaria para .SSH/authorized_keys y, por lo tanto, se le seguirá solicitando una contraseña.

Automatizar una transferencia SFTP entre dos servidores

Configuración SSH

La mayor parte de esto depende de la configuración de SSHd, el demonio SSH (Secure SHell) que se ejecuta en el servidor al que intentas conectarte. Este servidor se denominará "servidor2.com" con fines de demostración.

Compruebe la "SSHd_config" en ese servidor, normalmente en /etc/SSH. En algunos casos, estos ajustes no siempre están presentes o configurados como usted necesita:

RSAAuthentication yes
PubkeyAuthentication yes

Esto habilita el mecanismo de autenticación de clave pública/privada que utilizarás.

Generación de claves públicas/privadas

Genere el par de claves en el equipo Linux desde el que desea conectarse. Este servidor se denominará "servidor1.com". con fines de demostración. Es esa caja en la que planeas ejecutar SSH, SFTP o Rsync.

SSH-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.SSH/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .SSH/id_rsa.
Your public key has been saved in .SSH/id_rsa.pub.
The key fingerprint is:
c1:21:e 3:01:26:0d:f7:ec:52:0e:0c:90:9b:6e:d8:47 user1@server1.com

El comando anterior genera un par de claves pública/privada. Responda a cada pregunta pulsando <Enter>. La posesión de la clave privada es suficiente para acceder a los recursos en los que hayas colocado la clave pública correspondiente.

No debe introducir una frase de contraseña para la clave privada para configurar una solución automatizada. Si introduces una frase de contraseña, tendrás que introducirla para utilizar la clave privada. 

 Nota: Al no colocar una frase de contraseña en tu clave privada, la implicación de seguridad es que la mera posesión de la clave privada es suficiente para obtener acceso a cualquier recurso en el que hayas colocado la clave pública correspondiente. Proteja su clave privada.

La clave privada se colocó en /home/usuario1/.SSH/id_rsa. Esto debe mantenerse seguro debido a la implicación de seguridad anterior, pero también debe estar disponible para el proceso que intenta realizar una conexión SSH, SFTP o Rsync. Si estas herramientas se ejecutan bajo la cuenta 'user1', las herramientas buscarán automáticamente en el directorio ".SSH", y no necesitarás especificar la ubicación de la clave privada. De lo contrario, las opciones de la línea de comandos deben apuntar al lugar y la tecla correctos.

La clave pública está en /home/usuario1/.SSH/id_rsa.pub. Esta es la clave que se distribuye a los lugares que quieren concederte acceso.

Planta la clave pública

  1. En el servidor remoto, servidor2.com, elija cualquier cuenta a la que desee conectarse.
  2. En el directorio principal de esa cuenta, cree un archivo .ssh y cree un nuevo archivo de texto llamado authorized_keys en ese directorio. Si ya existe un archivo de texto con este nombre, utilice el archivo existente.
  3. En el servidor remoto, servidor2.com, elija cualquier cuenta a la que desee conectarse. En el directorio principal de esa cuenta, cree un archivo .ssh y cree un nuevo archivo de texto llamado authorized_keys en ese directorio. Si ya existe un archivo de texto con este nombre, utilice el archivo existente.

     Nota: Si crea el archivo y/o directorio, se recomienda que el directorio tenga chmod 700 y el archivo 600. De este modo, sólo el propietario puede acceder al directorio y al archivo que contiene.

  4. Añada a ese archivo el contenido del archivo id_rsa.pub creado anteriormente. Sería una *línea única* parecida a esto:
    ssh-rsa <lots of characters> user1@server1.com
    
  5. Una vez guardada, cualquiera que posea la clave privada que coincida con esta clave pública podrá iniciar sesión como esta cuenta.

SFTP

La clave pública fue colocada en la cuenta user2 en server2.com. Así que ahora, servidor1.com conectado como usuario1, y donde la clave privada se almacena como se ha descrito anteriormente, una sesión sftp se parece a esto:

sftp user2@server2.com

"usuario2" especifica la cuenta remota en servidor2.com con la que iniciar sesión.

La autenticación se produce porque la clave privada coincide con la clave pública, lo que indica que estás autorizado a iniciar sesión en esa cuenta. Se abre una sesión SFTP sin necesidad de interactividad.

 Nota: Si ha introducido una frase de contraseña en la clave privada, se le pedirá que la introduzca aquí. Esta es la frase de contraseña para desbloquear la clave privada, que es local. No tiene nada que ver con cualquier contraseña en el sitio remoto

Rsync

Puede utilizar Rsync para las operaciones de copia de archivos, que puede gestionar la compresión inteligente, la copia sólo si es necesario, la recursividad, la retención de atributos de compresión, el sello de fecha/hora y muchas otras operaciones.

Si todas las claves están configuradas como arriba, este comando Rsync copia un archivo de la máquina local a la remota:

rsync -e ssh file user2@server2.com:/home/user2/

El archivo local "archivo" se copia en el remoto /home/usuario2/archivo después de iniciar sesión como "usuario2" utilizando ssh como transporte (de ahí la opción "-e ssh"), y con ello, utilizando el par de claves privada/pública que creó para la autenticación sin necesidad de interactividad.

SSH

SSH funciona también para abrir un shell remoto una vez que las claves están en su lugar. Si todas las claves están configuradas como arriba, este comando SSH abre una shell remota en el servidor2, iniciando sesión como usuario2.

ssh user2@server2.com

Ejemplo

 Nota: Los ejemplos siguientes indican más de un espacio para ilustrar dónde se necesita un espacio. Cuando introduzca sus comandos, utilice sólo un espacio.

Si utiliza un sistema basado en Linux, puede utilizar cualquiera de estos comandos para cargar el archivo de clave pública en la ubicación correcta. Antes de utilizar cualquiera de estos comandos, debe generar una clave privada/pública.

Método Pasos
SFTP
  1. Introduzca SFTP [nombre de usuario de la cuenta de intercambio de archivos de OCLC]@[centro de datos].oclc.org
  2. Introducir put /home/[nombre de usuario para la máquina local]/.SSH/id_rsa.pub .SSH/authorized_keys
  3. Entrar Salir
Copia segura
  1. Introduzca scp /home/[nombre de usuario del equipo local]/.SSH/id_rsa.pub [nombre de usuario de la cuenta de intercambio de archivos de OCLC]@[centro de datos]:.SSH/authorized_keys

Si utiliza un cliente SFTP como FileZilla, siga los siguientes pasos para cargar el archivo de clave pública en la ubicación correcta. Antes de utilizar este comando, debe generar una clave privada/pública.

Método Pasos
SFTP
  1. En su máquina local, cambie el nombre del archivo id_rsa.pub a authorized_keys.
  2. Inicie sesión en su cuenta de intercambio de archivos de OCLC. Estarás en el directorio home, que corresponde a tu nombre de usuario.
  3. Desde su directorio personal, haga clic en /.SSH. Verá un archivo authorized_keys existente.
  4. Suba el archivo authorized_keys desde su máquina local al directorio /.SSH .  Recibirá un mensaje indicando que el archivo de destino ya existe; elija la acción para sobrescribir el archivo de destino.