Estou tentando usar o meu Mac Terminal para scp um arquivo de Downloads (phpMyAdmin baixei on-line) para minha instância do Amazon EC2.
O comando que eu usei foi:
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
O erro que recebi: Aviso: O arquivo de identidade myAmazonKey.pem não está acessível: Esse arquivo ou diretório não existe. Permissão negada (chave pública). conexão perdida
Meu myAmazonkey.pem e phpMyAdmin-3.4.5-all-languages.tar.gz estão em Downloads, então tentei
scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
e o erro que obtive: Aviso: O arquivo de identidade /User/Hello_Kitty22/Downloads/myAmazonkey.pem não está acessível: Esse arquivo ou diretório não existe. Permissão negada (chave pública). conexão perdida
Alguém pode me dizer como resolver meu problema?
ps existe um post semelhante: scp (cópia segura) para a instância ec2 sem senha, mas não responde à minha pergunta.
fonte
Respostas:
Tente especificar o usuário
ec2-user
, por exemploConsulte Conectando-se a instâncias Linux / UNIX usando SSH .
fonte
:/
tentaria copiar a pasta para a raiz do sistema, o que daria erros de permissão em todas as máquinas sem executar o sudo (ou como root).O segundo diretório é o seu destino, não use o nome do servidor. Em outras palavras, você não precisa mencionar o nome da máquina na qual está atualmente.
-r se for um diretório.
fonte
Sua chave não deve estar visível publicamente para o SSH funcionar. Use este comando, se necessário:
fonte
Você deve estar na sua máquina local para tentar o comando scp acima.
Na sua máquina local, tente:
fonte
Aqui estão os detalhes do que funciona para uma instância do EC2 :
Algumas notas para o começo:
-i
scp
significa protocolo de cópia segura. Conhecer as palavras facilita a lembrança do comando.-i
determina que você precisa fornecer o.pem
arquivo como o próximo parâmetro. Se não houver-i
, então você não precisa de.pem
.:~
final do destino para a instância do EC2.fonte
Eu tive exatamente o mesmo problema, minha solução foi
scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:
(deixe em branco aqui)Depois de concluir esta parte, entre no servidor ssh e no arquivo mv no local desejado
fonte
fonte
Abaixo o formato SCP funciona para mim
SampleFile.txt : será o caminho do seu diretório raiz (no meu caso, / home / ubuntu). no meu caso, o arquivo que eu queria baixar estava em / var / www
SampleFile2.txt : será o caminho do caminho raiz da sua máquina (no meu caso, / home / MyPCUserName)
Então, eu tenho que escrever abaixo do comando
fonte
Enviar arquivo do local para o servidor:
Baixe o arquivo do servidor para o local:
fonte
O processo de uso do SCP para copiar arquivos de uma máquina local para uma instância do AWS EC2 Linux é abordado passo a passo (incluindo os pontos mencionados abaixo) neste vídeo .
Para corrigir esse problema específico usando o SCP:
Você precisa especificar o usuário Linux correto. Da Amazônia :
Sua chave privada não deve estar visível publicamente. Execute o seguinte comando para que apenas o usuário root possa ler o arquivo.
fonte
Verifique as permissões no arquivo .pem ... O openssh geralmente não gosta de chaves privadas legíveis pelo mundo e falhará (ou seja, o scp não faz um ótimo trabalho ao fornecer esse feedback ao usuário).
Você pode simplesmente usar ssh com essa chave no seu host da AWS?
fonte
Primeiro, você deve alterar o modo do
.pem
arquivo do modo de leitura e gravação para o modo somente leitura. Isso pode ser feito apenas com um único comando no terminalsudo chmod 400 your_public_key.pem
fonte
Eu tentei todas as sugestões mencionadas acima e nada funcionou. Encerrei a instância atual, lancei outra e repeti o mesmo processo exato. Desta vez sem problemas. Às vezes, pode ser culpa do ami remoto.
fonte
Isso só funcionou para mim. Eu usei uma combinação de duas outras respostas para esta pergunta.
O "[email protected]" é copiado e colado no DNS público da sua instância ec2.
fonte
Eu usaria:
scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'
fonte