Transferir arquivos usando scp: permission denied

Tento transferir arquivos do computador remoto usando ssh para o meu computador:

scp My_file.txt user_id@server:/Home

Isso deve colocar My_file.txt na pasta pessoal do meu computador, certo? Recebo

scp / Home: permissão negada

Também quando tento: ...@server:/Desktop, para copiar os arquivos do computador remoto para a minha área de trabalho.

O que estou fazendo de errado?

Comentários

  • Se você deseja copiar o arquivo para a pasta inicial de ‘ user_id ‘ use scp My_file.txt user_id@server: Copia para a pasta inicial do usuário.

Resposta

Seus comandos estão tentando colocar o novo documento na root (/) de sua máquina. O que você deseja fazer é transferi-los para seu diretório home (já que você não tem permissão para gravar em /). Se o caminho para sua casa for algo como /home/erez, tente o seguinte:

scp My_file.txt user_id@server:/home/erez/ 

Você pode substituir o caminho para seu diretório inicial com o atalho ~/, então o seguinte terá o mesmo efeito:

scp My_file.txt user_id@server:~/ 

Você pode até sair fora do caminho completamente no lado remoto; isso significa seu diretório inicial.

scp My_file.txt user_id@server: 

Ou seja, para copiar o arquivo para a sua área de trabalho, convém transferi-lo para /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/ 

ou usando o atalho:

scp My_file.txt user_id@server:~/Desktop/ 

ou usando um caminho relativo no lado remoto, que é interpretado em relação ao seu diretório inicial:

scp My_file.txt user_id@server:Desktop/ 

Editar:

Como @ ckhan já mencionado, você também tem que trocar os argumentos, tem que ser

scp FROM TO 

Então, se você quiser copiar o arquivo My_file.txt do servidor user_id@server para sua área de trabalho, você deve tentar o seguinte:

scp user_id@server:/path/to/My_file.txt ~/Desktop/ 

Se o o arquivo My_file.txt está localizado em seu diretório inicial no servidor, você pode usar novamente o atalho:

scp user_id@server:~/My_file.txt ~/Desktop/ 

Comentários

  • – Eu ‘ tentei: ” ~ / para ‘ Página inicial ‘ agora e também ” ~ /Área de Trabalho/. Ambos resultaram em: My_file.txt 100% 0 0,0 KB / s 00:00, e não consigo ver os arquivos em minhas pastas. O que ainda estou fazendo de errado? Muito obrigado!
  • Em seu segundo exemplo de comando, o ~ deve ser protegido de avaliação para ser avaliado no host remoto: \~ por exemplo.
  • Para lhe agradecer, me registrei no site. Obrigado, você salvou meu dia 🙂

Resposta

Eu vim aqui para “Transferir arquivos usando scp: permissão negada “porque eu tive o mesmo erro.

No meu caso, o arquivo baixado com scp teria sobrescrito um arquivo pertencente ao root, e eu não era root. Em suma, verifique a propriedade do arquivo sendo substituído.

Comentários

  • Neste caso, ‘ s porque ele ‘ está tentando gravar em /Home e não sendo root, ele não ‘ não tem acesso de gravação fora de ~/
  • Você me ajuda.

Resposta

O que consertou a “permissão negada” para mim foi, no servidor remoto, alterar a propriedade da pasta para root: (Isso pode acontecer quando você está enviando um arquivo para um usuário não root e o diretório é de propriedade do root! ) Na máquina remota (copiando dest.):

sudo chown (your username) (remote folder) 

Além disso, ative todas as permissões na pasta remota: (nem sempre necessário):

sudo chmod 777 (remote folder) 

Resposta

parece ser um problema de permissão

O arquivo pode não ter permissões de leitura, pois é entregue ao servidor de destino como a conta de origem.

você precisa garantir que o arquivo na fonte tenha as permissões necessárias, especialmente permissão de leitura

-rw-r – r–

chmod 744

então copie o arquivo para o destino. Isso será resolvido

Comentários

  • -rw-r--r-- é 644, não 744. Definir permissão de executável em um arquivo que não é realmente executável pode causar problemas.

Resposta

Você tem os argumentos para scp revertido.É a origem primeiro, depois o destino, como cp. man scp para obter mais detalhes.

Resposta

Como Jinzai apontou, a pasta remota pode pertencer ao root. No meu caso, alguém (ou algo) alterou o proprietário da pasta pessoal do usuário para fazer root. Portanto, quando tentei enviar um arquivo para um servidor remoto, ocorreu um erro de permissão negada.

Você pode verificar o proprietário da pasta com o comando ls -l :

drwxr-xr-x 5 root root 4096 Oct 21 08:16 user2

No exemplo acima, a pasta user2 pertence ao root. Você pode alterar o proprietário desta forma:

chown user2:user2 user2

Há também uma maneira mais rápida de verificar se o servidor está bloqueando um arquivo, scp ou não. Tente criar um arquivo na pasta de destino, por exemplo com touch test_file. Se você não conseguiu criar um arquivo na pasta, não poderá enviar o arquivo aqui remotamente pelo mesmo usuário.

Resposta

Permissão negada significa que você não é o root do servidor. Você acabou de manter uma conta lá. Nesse caso, você precisa fazer isso:

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

Isso irá copiar para o seu diretório pessoal no servidor.

Isso também funcionará :

scp -r /path2yourFolder/ username@server_Ip:~/ 

Resposta

Amazon Linux AMI

Certifique-se de que você precisa definir o caminho absoluto do servidor, de home no caso atual:

scp file.txt SSH-ALIAS:/home/YOUR_USER/ 

Resposta

Instale uma ferramenta do Windows” mRemoteG “em www.mremoteng.org/

Crie sua conexão SSH na caixa desejada.

Clique no menu “Transferir Arquivo”.

Isso permitirá a transferência de arquivos facilmente do Windows para o Linux.

obrigado.

Resposta

As mesmas permissões se aplicam em ambos os lados do scp. Você obterá esse erro se o usuário não tiver permissão para gravar no destino. Os sintomas parecem implicar a fonte, no entanto, no meu caso, o destino foi criado pelo root e não tinha permissão de gravação para a conta de usuário pretendida.

Resposta

No meu caso, também tentei conceder todas as permissões com -R para a pasta, mas ainda obtive o erro sobre a permissão.

Tive que remover “/” antes do caminho do servidor e da pasta de destino. O motivo é porque Downloads é a primeira pasta que posso listar depois de fazer o ssh para o servidor, por exemplo: ssh [email protected]

Isso funciona:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Downloads

Isso não estava funcionando:

sudo scp -rp /Users/macintosh.vn/Downloads /bbhs_20190301.zip [email protected]: / Downloads

Resposta

Correção fácil. Certifique-se de que VOCÊ é o root. SCP para o remoto e pedirá a senha de root da máquina. Só tinha esse problema que era a solução. Você faz o root deles como root.

Comentários

  • Como os logins de root são normalmente desabilitados em sshd_config , você deve mostrar ao OP como para mudar isso (embora ‘ não seja recomendado).
  • Por que você insiste em usar root para copiar um (qualquer) arquivo? Observe também a resposta aceita de ~ 7 anos atrás …

Resposta

antes de usar o comando scp, make certifique-se de dar permissões de leitura, gravação e execução a todos os usuários externos. “chmod 777 file_name”

Comentários

  • você pode copiar arquivos que não sejam 777

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *