scp'ing usando il file chiave come parametro, come posso farlo se possibile?


51
scp -i ~/.ssh/id_rsa.pub events*$date*_QA.log $remote_user@$remote_server:$remote_location

Lo script di cui sopra è errato? Non lo sto facendo correttamente?

Sono andato alla .sshdirectory e ho visto che il server remoto è nel known_hostsfile.

Ma, quando faccio scp ordinario senza alcun file come parametro, mi chiede ancora la password

scp events*$date*_QA.log $remote_user@$remote_server:$remote_location

Come posso includere il file chiave nel mio comando?

sh-3.2$ grep server ~/.ssh/*
/home/user/.ssh/known_hosts:server....com,ip_addr ssh-rsa Asine=jhjsdhfjsadhfjkashdfjhasdjfhksadjfhasjdfhj

Risposte:


67
 -i identity_file
         Selects the file from which the identity (private key) for public
         key authentication is read.  This option is directly passed to
         ssh(1).

Usa ~/.ssh/id_rsa.


ancora chiedendo la passwordsh-3.2$ scp -i ~/.ssh/id_rsa test_QA.log user@server:location user@server's password:

@tech_learner strano, visto che funziona per me
whitequark

2
Potrebbe essere necessario utilizzare un percorso effettivo, come in / home / user / anziché ~. Sembrava averlo fatto funzionare per me.
Evan Darwin,

1
Si desidera che il contenuto ~ / .ssh / id_rsa.pub dell'utente locale sia inserito nel file authorized_keys del server remoto. Di solito è in ~ / .ssh / authorized_keys. È inoltre necessario prestare particolare attenzione alle autorizzazioni per i file nei file in ~ / .ssh, rendendoli minimamente accessibili. sshd è molto particolare riguardo alle autorizzazioni per i file.
JR Lawhorne,

Su Mac OS X ha funzionato solo se -i ~/.ssh/id_rsaera la prima opzione. Quindi, questo ha funzionato: scp -i ~/.ssh/mykey.pem -r dir user@remote_server:~/. Questo non ha funzionato:scp -r -i ~/.ssh/mykey.pem dir user@remote_server:~/
asmaier

1

Questo potrebbe aiutare un altro noob.

[So che questo è un esempio circolare ridondante ma è utile illustrarlo] Scenario:

  1. ssh da Mac -> Ubuntu
  2. file scp da Mac -> Ubuntu
  3. chiudi i file ssh e scp da Ubuntu -> Mac

Avevo creato solo chiavi ssh sul mio Mac (tramite ssh-keygen) e le avevo condivise con la macchina che eseguiva Ubuntu tramite (ssh-copy-id). Quindi ho potuto copiare i file, mentre ero collegato al mio Mac dalla macchina che esegue Ubuntu, ma non viceversa.

Soluzione: ho dovuto creare chiavi ssh sulla macchina Ubuntu e condividerle con il mio Mac. quindi ho potuto eseguire con successo il seguente comando sulla macchina Ubuntu

Mac IP: 192.168.1.40
Ubuntu IP: 192.168.1.38

Su Mac

ssh-keygen
ssh-copy-id ubuntu@192.168.1.38

ssh ubuntu@192.168.1.38

# Now on Ubuntu
ssh-keygen
ssh-copy-id MAC@192.168.1.40

E ora il seguente comando dovrebbe copiare il file senza chiedere la password al MAC

sudo scp -i /home/ubuntu/.ssh/id_rsa MAC@192.168.1.40:~/Documents/Fluff/Version-Control/tools/pull.sh .

0

Testato e corretto tramite queste istruzioni: https://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login

Le istruzioni qui hanno funzionato perfettamente quando ho testato sulle mie scatole (CentOS / CentOS). Immagino che il problema sia che le tue chiavi ssh non sono legate a un nome utente.

Esempio: authorized_keys Cat # su Box sto SSHing / scpin' a ssh-rsa BLAHBLAHBLAHBLAH / zAcS4kD9pyPAjD3 / gd5D1rcQa6IztCMR9yMXiGFnxviWsT8 / oYevZw25k4yREuA8ibLKC9peH1X4LK1E + n7gq4TETexWkZbQ2XGLOX44eglra3MB4FShPg0cZXGcJWltPQ / y0Ay2A / KmaC14YrDfqwm7 + ibTiUp4hOO8I6eIPmwwGn / 2hs0SewJXisGqUx2v #username my_user@machine.local è legata alla chiave ed è un host autorizzato

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.