scp (copia segura) a la instancia ec2 sin contraseña


404

Tengo una instancia de EC2 ejecutándose (FreeBSD 9 AMI ami-8cce3fe5), y puedo ingresar usando mi archivo de clave creado por Amazon sin solicitud de contraseña, no hay problema.

Sin embargo, cuando quiero copiar un archivo a la instancia usando scp, se me pide que ingrese una contraseña:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

¿Alguna idea de por qué sucede esto / cómo se puede prevenir?


¿Está utilizando excatly el mismo identificador para el usuario y el host?
Lynch

No estoy seguro de entender lo que quiere decir con identificador, ¿podría explicarlo?
Hoff

si para una conexión usa una dirección IP y para la otra usa un nombre, no funcionará. Acabo de ver que usa la -iopción para proporcionar su identidad. Es posible que también deba mostrar el comando que usa para iniciar sesión con ssh.
Lynch

gracias Lynch, lo descubrí!
Hoff

Respuestas:


804

Me lo imaginé. Tenía los argumentos en el orden incorrecto. Esto funciona:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

14
de quien entiende cómo conectarse a ec2 a través de ssh, simplemente cambie el sshcomando scpy agregue el archivo de nombre después del archivo pem.
Claudio Santos

11
Dado que esta respuesta es un poco antigua, un ejemplo más reciente de mi nueva instancia EC2: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4: / home / ec2-user
siliconrockstar el

1
@siliconrockstar ¡Su declaración ec2-user@1.2.3.4:/home/ec2-userse reemplaza fácilmente con el ec2-user@1.2.3.4:./ ./FTW más corto y fácil !
Brock 01 de

2
Un comentario muy tardío, pero lo que sugiere @ClaudioSantos no funciona exactamente si está utilizando un puerto no estándar. Es -p para ssh y -P para scp.
Inukshuk

1
Puedo usar mi archivo * .PEM para ssh en ec2. sin embargo, cuando quiero usarlo para SCP un archivo, me da el error "Permiso denegado". ¿Como puedo resolver esto?
AleX_

58
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

El parámetro (-r) no es obligatorio, pero es necesario eliminar (/) del final de la ruta remota. Su ejemplo funcionó para mí, muchas gracias
Abbas

35

He utilizado el siguiente comando para copiar desde Linux local Centos 7 a AWS EC2.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user


19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

El nombre del archivo no debe estar entre el archivo pem y la cadena ec2-user, eso no funciona. Esto también le permite reservar el nombre del archivo copiado.


14

copiar un archivo de un servidor local a un servidor remoto

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

copiar un archivo de un servidor remoto a una máquina local

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

Entonces, la sintaxis básica es: -

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-ies para el archivo de identidad


8

supongamos que su archivo pem y somefile.txt que desea enviar están en la carpeta Descargas

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

avísame si no funciona


scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com: ~ / ~ / Desktop / en caso de que desee transferir el archivo del servidor al local
Yatender Singh

2
Gracias, me dieron "acceso denegado" :/al final pero :~/funciona
cardamomo

Sí, porque: / es la carpeta raíz y: ~ / es la carpeta de usuario, así que si eres usuario raíz, entonces: / o: ~ / cualquier cosa funcionará y si no eres usuario raíz, entonces solo: ~ / tienes que usarlo.
Yatender Singh

3

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

esto será muy útil para todos ustedes


2

Mi hadoopec2cluster.pemarchivo era el único en el directorio en mi Mac local, no podía scp a aws usando scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Copié hadoopec2cluster.pem en hadoopec2cluster_2.pem y luego scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Voila!


2

Estaba colgado en esto porque estaba especificando mi archivo de clave pública en

scp -i [private key file path]

Cuando capté ese error y lo cambié a la ruta de la clave privada, estaba todo listo.


2

En su caso, el usuario rootno tendrá ningún problema. Pero en ciertos casos en los que debe iniciar sesión en SSH como un usuario diferente, asegúrese de que el directorio que está scputilizando tenga los permisos adecuados para el usuario que está utilizando SSH.


1

Para usar PSCP, necesita la clave privada que generó al convertir su clave privada utilizando PuTTYgen. También necesita la dirección DNS pública de su instancia de Linux

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

0

escribe este código

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

Si tiene una clave SSH con acceso al servidor de destino y el servidor de origen no, agregar -o "ForwardAgent = yes" le permitirá reenviar su agente SSH al servidor de origen para que pueda usar su clave SSH para conectarse El servidor de destino.


-6

Acabo de probar:

Ejecute el siguiente comando:

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

Entonces:

  1. crear ami (imagen del ec2).
  2. el lanzamiento desde la nueva ami (imagen) del paso no 2 eligió nuevas claves.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.