Risposte:
Provare:
sftp -o "IdentityFile=keyname" jay@server.name.com
Puoi usare -o
per passare qualsiasi opzione valida in ~/.ssh/config
.
IdentityFile
opzione sia sempre data automaticamente, controlla la risposta di UtahJarhead sull'inserimento~/.ssh/config
Copia la tua chiave PUBLIC sul server usando i mezzi tradizionali.
Sul server:
.ssh
se non esiste:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / authorized_keys"
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
Se stai cercando di installare sftp su ec2, questo articolo potrebbe essere d'aiuto
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 :)
-i
opzione non funziona?