scp copy over ssh não funciona - permissão negada, por favor?

83

Está me deixando louco! Eu só quero transferir um arquivo simples do laptop para o servidor.

Estou usando o ubuntu nas duas máquinas.

Então eu tenho:

-rwxr-xr-x 1 sandro    414622 2011-10-14 23:42 sandrophoto-html.tar.gz

E eu estou enviando usando:

sudo scp -P XXXX sandrophoto-html.tar.gz [email protected]:/media/xx/xx/xx

E eu recebo: scp: /media/xx/xx/xx/sandrophoto-html.tar.gz: Permission denied

ps Talvez eu esteja fazendo o contrário - quero enviar o arquivo tar.gz localizado na minha área de trabalho para o servidor remoto na pasta / media / yadayda

Edd
fonte
2
No meu caso, foi motivo de segurança no lado de recepção, eu tinha que chmod o diretório para permitir que o usuário remoto para gravar o arquivo (i chmod 777 o diretório - mas é laboratório interno)
ilansch

Respostas:

95

Você tem as coisas na ordem certa, pelo que entendi, a maneira geral como um scp é feito é:

scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/

A julgar pela sua pergunta, você tem um arquivo local que deseja enviar ao servidor de destino. Então você tem a sintaxe correta, o que é bom!

Se você está recebendo permissão negada, não está usando o nome de usuário correto ou algo errado com a autenticação. Provavelmente, é porque o comando sudo funciona apenas localmente, para iniciantes, para que não seja root na caixa remota, então esse é provavelmente o problema. Verifique se o usuário no qual você está efetuando login no servidor remoto possui permissões de gravação no local em que está tentando gravar.

Se o problema é que o usuário de destino não tem acesso a esse local sem o sudo, mova o arquivo para a pasta inicial do usuário de destino e, em seguida, sudo mv o arquivo do shell no outro servidor para colocá-lo no local correto.

Anna
fonte
9
Obrigado, eu tive que adicionar permissão de gravação para o diretório de destino
Pikey
@PiKey Isso deve ser uma resposta
Code-Guru
39

Oi tinha esse mesmo problema de erro de permissão resolvido desta maneira

Verifique se o diretório para o qual você está copiando 192.168.0.4pertence ao nome de usuário do usuário

chown username downloads

Na sua máquina local, faça

sudo scp filename.zip [email protected]:/etc/Myfiles/downloads

Felicidades

mainakibui
fonte
thx, era permissões, especificamente aqui eu tive que usar chmodna pasta de destino no servidor remoto
Aquarius Poder
26

Permissão negada significa que você não é a raiz do servidor. Você apenas mantém uma conta lá. Portanto, nesse caso, você precisa fazer o seguinte:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

Isso será copiado para o diretório inicial no servidor.

Isso também funcionará:

scp -r /path2yourFolder/ username@server_Ip:~/
Abhishek Kaushik
fonte
2
salva-vidas! : ~ / fiz por mim.
trdavidson
~/é realmente o caminho, -ré para copiar recursivamente diretório inteiro.
Noam Manos
9

Este erro ocorreu para mim quando o arquivo já existia no local de destino e o arquivo existente tinha permissões somente leitura (impedindo a substituição do arquivo). No meu caso, acabei de fazer login e excluí o arquivo existente e isso corrigiu o problema.

Kevin
fonte
7

Eu tive um problema semelhante, isso aconteceu porque sshleva -p xxxxpara especificar a porta enquanto scpleva -P xxxxpara especificar a porta. Inconsistência menor, tão fácil de perder :(

punhal
fonte
Te louvo. Não importa se eu adicionar algumas palavras-chave capazes do Google para tornar isso mais visível:scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com
user1717828
0

Teve o mesmo problema. Descobri que o diretório que contém meu arquivo de origem não tinha permissão suficiente. Então, mudei o modo recursivamente usando: chmod -R 771 directory_pathna máquina de origem.

Changba
fonte
0

Eu estava tentando copiar da minha máquina local como username@localhost; a chave SSH que eu estava usando não estava registrada para acessar meu host local, então estava obtendo permissão negada. Quando removi isso da parte de origem , funcionou.

Chaim Eliyah
fonte