Come utilizzo il mio file di chiavi per trasferire sftp i dati da un server a un altro


25

Non posso scp, l'altro server accetta solo connessioni sftp.

Attualmente sto provando a farlo

sftp jay@server.name.com:/files> put -r ~/

-i keynamenon funziona, si risolve solo con illegal option -- i.

Risposte:


34

Provare:

sftp -o "IdentityFile=keyname" jay@server.name.com

Puoi usare -oper passare qualsiasi opzione valida in ~/.ssh/config.


Azzeccato. Grazie! come lo tengo lì normalmente?
— Jay,

Non so cosa intendi per "tenerlo lì normalmente". Se vuoi dire che vuoi che l' IdentityFileopzione sia sempre data automaticamente, controlla la risposta di UtahJarhead sull'inserimento~/.ssh/config
— Celada,

4

Copia la tua chiave PUBLIC sul server usando i mezzi tradizionali.

Sul server:

  • Crea .sshse non esiste:
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • Implementare la chiave pubblica:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / authorized_keys"
  • Imposta le autorizzazioni appropriate. OpenSSH è MOLTO ANALE riguardo alle autorizzazioni dei file in questione:
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / authorized_keys"

Successivamente, dovresti essere in grado di accedere dal client utilizzando la chiave PRIVATA. Per automatizzare un trasferimento, si desidera utilizzare un file batch, che è solo un file di testo contenente un elenco di comandi da eseguire.

echo "put nomefile.foo /safe/path/nomefile.foo" >> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key user @ host

In alternativa, sentiti libero di creare un file ~ / .ssh / config in formato ssh_config in modo da poterlo digitare in futuro:

sftp -b /tmp/batchfile.txt host

Contenuti di esempio di ~/.ssh/config

Ospita il nome_host
    Utente nome_utente
    IdentityFile / path / to / private_key

Provo questo nel prossimo batch, ma la soluzione sopra ha fatto il trucco.
— Jay,

1

Se stai cercando di installare sftp su ec2, questo articolo potrebbe essere d'aiuto


Mi dispiace, davvero.
— Jay,

1
Questa "risposta" non ha nulla per contribuire alla domanda. Peggio ancora, è solo un link a una pagina che un giorno scomparirà.
— John Mayor,

0

Di recente ho riscontrato questo problema e ciò che ha funzionato per me nella configurazione del terminale predefinito del mio macbook è il seguente

sftp -i ./privateFilePath.key username@url.com

Nota che potresti essere promosso con FILE CHIAVE PRIVATO NON PROTETTO! messaggio nel qual caso è necessario eseguire questo comando per assicurarsi che la chiave privata non sia accessibile da altri.

chmod 600 privateFilePath.key 

In alcuni casi è necessario mettere sudo davanti al comando, questo è solo se si lavora in una directory protetta dall'amministratore

Vorrei che fosse utile :)


Perché ti aspetti che ciò sia utile quando la domanda diceva che l' -iopzione non funziona?
— Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.