Passa al contenuto principale
Supporto OCLC

Set up passwordless file exchanges

Scoprite come inviare e recuperare file utilizzando l'autenticazione a coppia di chiavi pubbliche/private per SFTP senza password con Linux.

È possibile inviare e recuperare file utilizzando l'autenticazione a coppia di chiavi pubbliche/private per SFTP senza password. In questo modo si automatizza la consegna dei file a OCLC e si elimina la necessità di inserire manualmente una password quando si utilizza un account di scambio file OCLC. Inoltre, consente alla vostra istituzione di cambiare regolarmente la chiave per una maggiore sicurezza.

Per motivi di sicurezza, OCLC non supporta il passaggio della password SFTP tramite script, ma offre invece la soluzione della coppia di chiavi pubbliche/private per consentire la scrittura di script completamente automatizzati per il caricamento e il download sul nostro server.

Linux

Questa procedura riguarda i sistemi Linux. Sebbene metodi simili possano essere utilizzati per altri sistemi, OCLC ha testato questo metodo utilizzando Linux come computer client SCP e SFTP. Durante il caricamento della chiave pubblica viene richiesta una password, ma una volta sostituita, i futuri accessi e trasferimenti di file non richiedono una password.

Generare e caricare la chiave pubblica

Per generare e caricare la chiave pubblica sul vostro account di scambio file OCLC:

  1. Generate a private/public key pair on your client machine and put it in a file called /home/user1/.SSH/id_rsa.pub on your local machine.
     Note:  If you are unsure how to generate a private/public key pair, you can use the method described below, which puts the private/public key file in the correct place on your local machine automatically.
  2. Caricate la vostra chiave pubblica in .SSH/authorized_keys nel vostro account di scambio file OCLC.

 Nota: non cancellare il file .SSH/authorized_keys esistente prima di caricare quello nuovo. Il nuovo file caricato sostituisce automaticamente il file esistente, mantenendone le autorizzazioni e le proprietà. Se si elimina il file esistente prima di caricare il nuovo file, i diritti sul sistema non saranno sufficienti per impostare la proprietà del gruppo necessaria per .SSH/authorized_keys e quindi continuerà a essere richiesta la password.

Automatizzare un trasferimento SFTP tra due server

Configurazione SSH

La maggior parte di ciò si basa sulla configurazione di SSHd, il demone SSH (Secure SHell) in esecuzione sul server a cui si sta tentando di connettersi. Questo server sarà indicato come "server2.com" a scopo dimostrativo.

Controllare "SSHd_config" sul server, in genere in /etc/SSH. In alcuni casi, queste impostazioni non sono sempre presenti o impostate nel modo desiderato:

RSAAuthentication yes
PubkeyAuthentication yes

Questo abilita il meccanismo di autenticazione a chiave pubblica/privata che si utilizzerà.

Generazione di chiavi pubbliche/private

Generare la coppia di chiavi sul computer Linux da cui ci si vuole connettere. Questo server sarà indicato come "server1.com". a scopo dimostrativo. È la scatola su cui si intende eseguire 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

Il comando precedente genera una coppia di chiavi pubbliche/private. Rispondete a ogni richiesta premendo <Enter>. Il possesso della chiave privata è sufficiente per ottenere l'accesso alle risorse in cui è stata inserita la corrispondente chiave pubblica.

Non è necessario inserire una passphrase per la chiave privata per configurare una soluzione automatica. Se si inserisce una passphrase, è necessario inserirla per utilizzare la chiave privata. 

 Nota: non inserendo una passphrase nella chiave privata, l'implicazione di sicurezza è che il semplice possesso della chiave privata è sufficiente per ottenere l'accesso a qualsiasi risorsa in cui sia stata inserita la corrispondente chiave pubblica. Salvaguardate la vostra chiave privata.

La chiave privata è stata collocata in /home/user1/.SSH/id_rsa. Questo deve essere mantenuto sicuro a causa delle implicazioni di sicurezza di cui sopra, ma deve anche essere disponibile per il processo che tenta di effettuare una connessione SSH, SFTP o Rsync. Se questi strumenti vengono eseguiti con l'account 'user1', verranno automaticamente cercati nella directory ".SSH" e non sarà necessario specificare la posizione della chiave privata. Altrimenti, le opzioni della riga di comando devono puntare al posto e alla chiave giusta.

La chiave pubblica si trova in /home/user1/.SSH/id_rsa.pub. Questa è la chiave che viene distribuita ai luoghi che vogliono garantirvi l'accesso.

Piantare la chiave pubblica

  1. Sul server remoto, server2.com, scegliete un account a cui volete collegarvi.
  2. Nella directory principale dell'account, creare un file .ssh e creare un nuovo file di testo chiamato authorized_keys in quella directory. Se esiste già un file di testo con questo nome, si utilizza il file esistente.
  3. Sul server remoto, server2.com, scegliete un account a cui volete collegarvi. Nella directory principale dell'account, creare un file .ssh e creare un nuovo file di testo chiamato authorized_keys in quella directory. Se esiste già un file di testo con questo nome, si utilizza il file esistente.

     Nota: se si creano il file e/o la directory, si raccomanda di assegnare alla directory il chmod 700 e al file il chmod 600. In questo modo, solo il proprietario può accedere alla directory e ai file al suo interno.

  4. Aggiungete a questo file il contenuto del file id_rsa.pub creato in precedenza. Si tratterebbe di una *singola linea* che ha un aspetto simile a questo:
    ssh-rsa <lots of characters> user1@server1.com
    
  5. Una volta salvato, chiunque possieda la chiave privata che corrisponde alla chiave pubblica può ora accedere come questo account.

SFTP

La chiave pubblica è stata inserita nell'account user2 su server2.com. Quindi ora, con il server1.com loggato come utente1 e con la chiave privata memorizzata come descritto sopra, una sessione sftp si presenta in questo modo:

sftp user2@server2.com

"user2" specifica l'account remoto su server2.com con cui effettuare il login.

L'autenticazione avviene perché la chiave privata viene abbinata alla chiave pubblica, il che indica che si è autorizzati ad accedere a quell'account. Viene aperta una sessione SFTP senza alcuna interattività.

 Nota: se è stata inserita una passphrase nella chiave privata, verrà richiesto di inserirla qui. Si tratta della passphrase per sbloccare la chiave privata, che è locale. Non ha nulla a che fare con le password del sito remoto.

Rsync

È possibile utilizzare Rsync per le operazioni di copia dei file, che può gestire la compressione intelligente, la copia solo se necessaria, la ricorsione, la conservazione degli attributi di compressione, la data/ora e molte altre operazioni.

Se tutte le chiavi sono impostate come sopra, questo comando Rsync copia un file dal computer locale a quello remoto:

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

Il file locale "file" viene copiato nella cartella remota /home/user2/file dopo aver effettuato il login come "user2" utilizzando ssh come mezzo di trasporto (da qui l'opzione "-e ssh") e utilizzando la coppia di chiavi private/pubbliche creata per l'autenticazione senza richiedere alcuna interattività.

SSH

Anche SSH funziona per aprire una shell remota una volta che le chiavi sono a posto. Se tutte le chiavi sono impostate come sopra, questo comando SSH apre una shell remota sul server2, con accesso come utente2.

ssh user2@server2.com

Esempio

 Nota: gli esempi che seguono indicano più di uno spazio per illustrare dove è necessario uno spazio. Quando si inseriscono i comandi, si prega di utilizzare un solo spazio.

If using a Linux-based system, you can use either of these commands to upload the public key file to the correct location. Before using either of these commands, you must generate a private/public key.

Metodo Passi
SFTP
  1. Immettere SFTP [nome utente account OCLC file exchange]@[data center].oclc.org
  2. Inserire put /home/[nome utente per la macchina locale]/.SSH/id_rsa.pub .SSH/authorized_keys
  3. Entrare in uscita
Copia sicura
  1. Immettere scp /home/[nome utente per la macchina locale]/.SSH/id_rsa.pub [nome utente dell'account OCLC file exchange]@[data center]:.SSH/authorized_keys

If using an SFTP client such as FileZilla, take the following steps to upload the public key file to the correct location. Before using this command, you must generate a private/public key.

Metodo Passi
SFTP
  1. Sul computer locale, rinominare il file id_rsa.pub in authorized_keys.
  2. Accedere al proprio account OCLC per lo scambio di file. Ci si troverà nella directory home, che corrisponde al proprio nome utente.
  3. Dalla propria directory principale, fare clic su /.SSH. Verrà visualizzato un file authorized_keys esistente.
  4. Caricare il file authorized_keys dal computer locale alla directory /.SSH.  Verrà visualizzato un messaggio che indica che il file di destinazione esiste già; scegliere l'azione per sovrascrivere il file di destinazione.