Come faccio a copiare i tasti SCP da un'istanza EC2 Amazon in un'altra istanza?

Sto provando a SCP cert. tra il mio due istanze e avere qualche problema. Ecco cosa sto entrando.

[ec2-user@ip-xxx-xx-xx-xx ~] scp -i .ssh/key.pem /root/.ssh/id_rsa.pub 10.xxx.xx.xxx:/root/.ssh/authorized_keys2 

ritorna

 /root/.ssh/id_rsa.pub: Permission denied 

Ho provato sudo ma EC2 mi dice di entrare come ec2 utente per utilizzare questo command. Che cosa sto facendo worng?

  • Il modo giusto per impostare chiavi SSH per automatizzare scp
  • scp - saltare un file durante l'esecuzione
  • Confronta e copia i file mancanti dalla directory identica sul server remoto
  • Debian Permette il rilascio di un command locale
  • Che cosa è corretto del command SCP su Ubuntu Hardy
  • Come fare scp copiare i file nascosti?
  • Passare una chiave privata a scp dalla row di command anziché un file
  • Posso scp una cartella con sottocartelle?
  • 3 Solutions collect form web for “Come faccio a copiare i tasti SCP da un'istanza EC2 Amazon in un'altra istanza?”

    Esistono due set di autorizzazioni da considerare nel tuo scenario – quello sulla macchina locale e quello sulla macchina remota. L'utente ec2 non dispone di autorizzazioni per accedere alla cartella / root sulla macchina locale. L'utilizzo di sudo risolve. Tuttavia, si accede alla macchina remota come utente non-root e non si dispone di autorizzazioni per la scrittura nella cartella / root. Questa è la causa dell'errore che stai vedendo. (Potresti probabilmente confermare questo aggiungendo il flag -v al tuo command scp).

    Ci sono alless due modi per risolvere questo problema:

    1. Il modo più semplice:

      SCP il tuo file in una directory sull'authorization remota che hai le autorizzazioni di scrittura per (home directory (~ /) dovrebbe essere buono, se la directory / tmp non functionrà quasi certamente ma è less sicura) e quindi SSH in e spostare il file.

        sudo scp -i /root/path/to/keypair.pem / root / path / a / locale_file ec2-user@xxx.xxx.xxx.xxx: ~ / path / to / remote_file
       ssh -i /root/path/to/keypair.pem ec2-user@xxx.xxx.xxx.xxx
       sudo mv ~ / path / a / remote_file / root / path / to / remote_file
       Uscita 
    2. Il modo più difficile

      È ansible trasferire un file su SSH e eseguire sudo sulla macchina remota utilizzando questa connessione SSH, tuttavia la macchina remota deve consentirla. Per impostazione predefinita su Linux di Amazon (che sembra che esegui dal tuo nome utente), non è ansible eseguire sudo senza un tty. Per modificarlo, sulla macchina remota, eseguire visudo e commentare Defaults requiretty (row 56) e salvare il file. Dopo di che, puoi:

      Pipe la tua chiave tramite SSH (nota, hai ancora bisogno di sudo per leggere il file locale):

        sudo cat / root / path / to / locale_file |  ssh -v -i /root/path/to/keypair.pem ec2-user@xxx.xxx.xxx.xxx "sudo bash -c 'cat -> / root / path / to / remote_file'" 

      Oppure, redirect la chiave tramite SSH (il sudo si applica solo alla prima parte del command, per cui è necessario diventare root, o mettere l'integer command in uno script e utilizzare sudo):

        sudo -i
       ssh -i /root/path/to/keypair.pem ec2-user@xxx.xxx.xxx.xxx sudo sh -c '"gatto / root / path / to / remote_file"' </ root / path / to / file_locale
       Uscita 

    (Alcuni programmi sembrano essere in grado di "sudo dopo il login su scp" (ad es. WinSCP), ma non so di poter eseguire un command su scp – forse SSH viene utilizzato per trasferire il file in tali scenari)

    Altrimenti, è quello di consentire l'accesso di root alla macchina remota e quindi eseguire l'accesso direttamente come root su SCP (ancora utilizzando sudo localmente). Annullare le modifiche apportte con visudo una volta che si è fatto con loro.

    Questo errore significa che non è ansible leggere il file indicato.

     /root/.ssh/id_rsa.pub: Permission denied 

    Puoi provare sudo scp ...

    Prova questo come root (eseguire prima se non sei connesso come root):

     ssh-copy-id 10.xxx.xx.xxx 

    Sembra che EC2 non desideri che tu acceda come root. Puoi eseguire ciò che stai cercando di fare come ec2 utente? Se è così:

     ssh-copy-id ec2-user@10.xxx.xx.xxx 

    Se no, puoi 1) modificare / etc / ssh / sshd_config a PermitRootLogin yes e riavviare sshd oppure 2) dare all'utente ec2 l'authorization a fare quello che vuoi fare.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.