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 [email protected]:/

Password:

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

Hoff
fuente
¿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 [email protected]:/
Hoff
fuente
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 [email protected]: / home / ec2-user
siliconrockstar el
1
@siliconrockstar ¡Su declaración [email protected]:/home/ec2-userse reemplaza fácilmente con el [email protected]:./ ./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
Syed Priom
fuente
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 [email protected]:/home/ec2-user
Renato Coutinho
fuente
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.

Siglo de dele
fuente
14

copiar un archivo de un servidor local a un servidor remoto

sudo scp -i my-pem-file.pem ./source/test.txt [email protected]:~/destination/

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

sudo scp -i my-pem-file.pem [email protected]:~/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

Jamil Noyda
fuente
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 [email protected]:~/

avísame si no funciona

Yatender Singh
fuente
scp -i /Users/Username/Downloads/myfile.pem -r [email protected]: ~ / ~ / 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

Barkat
fuente
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!

fall14123
fuente
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.

BuvinJ
fuente
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.

Shawn
fuente
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
dheeraj kumar
fuente
0

escribe este código

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim [email protected]:/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.

庄景鹏
fuente
-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.
amar essa
fuente