Passa al contenuto principale
Supporto OCLC

Caricare i file dei dati degli avventori in corso utilizzando SFTP senza password.

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.

Move to SHA-224 hash algorithm

If you are currently using the SHA-1 hash algorithm, you will need to move to SHA-224 or a later version by 7 July 2024. OCLC will no longer support the SHA-1 hash algorithm after Sunday, 7 July 2024.

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. Generare una coppia di chiavi private/pubbliche sul computer client e inserirla in un file chiamato /home/user1/.SSH/id_rsa.pub sul computer locale.
     Nota:  se non si è sicuri di come generare una coppia di chiavi private/pubbliche, è possibile utilizzare il metodo descritto di seguito, che inserisce automaticamente il file della chiave privata/pubblica nella posizione corretta sul computer locale.
  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.

The private key was placed in /home/user1/.SSH/id_rsa. This needs to be kept secure because of the security implication above, but it also needs to be available to the process of attempting to make an SSH, SFTP, or Rsync connection. If these tools are run under the ‘user1’ account, the tools will automatically look in the “.SSH” directory, and you won’t need to specify the private key location. Otherwise, command line options must point to the right place and key.

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.

Se si utilizza un sistema basato su Linux, è possibile utilizzare uno di questi comandi per caricare il file della chiave pubblica nella posizione corretta. Prima di utilizzare uno di questi comandi, è necessario generare una chiave privata/pubblica.

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

Se si utilizza un client SFTP come FileZilla, eseguire i seguenti passaggi per caricare il file della chiave pubblica nella posizione corretta. Prima di utilizzare questo comando, è necessario generare una chiave privata/pubblica.

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.