Já vi muitas variantes dessa pergunta, mas não acho que nada se encaixe exatamente na minha situação.
Estou em um computador no trabalho que está conectado por SSH a um servidor. Enquanto estiver neste servidor, gostaria de fazer SCP de alguns arquivos do meu Mac em casa.
Posso usar SSH no meu Mac a partir do servidor sem problemas com o comando normal:
ssh [email protected]
No entanto, quando tento SCP, recebo:-bash: /usr/bin/scp: Permissão negada
Estou usando o comando:
scp [email protected]:/absolute/filepath/i* local/folder
Eu também tentei sinalizadores number -p. Existe apenas uma conta no meu Mac e é a conta administrativa. Não tenho certeza se há problemas de permissão ou se é porque estou usando SSH no servidor ou se é outra coisa.
Também consigo fazer o SCP com êxito do servidor para o meu Mac ao fazê-lo no meu Mac em casa.
Alguma sugestão?
Editar: informações adicionais relevantes postadas originalmente como comentários porque eu tive um peido cerebral sobre o protocolo. (meu erro).
Especificamente relacionado à minha última frase sobre a capacidade de 'reverter' o SCP: o seguinte comando funciona quando estou conectado ao meu Mac como máquina local:
scp -P 22003 [email protected]:Data/path/i* /Full/Path/On/Mac/
A execução ls -l /usr/bin/scp
no servidor (local) retorna o seguinte:
rwxr-x---. 1 root root 67648 31 de agosto 12:40 /usr/bin/scp
A execução ls -l /usr/bin/scp
no Mac (remoto) retorna o seguinte:
-rwxr-xr-x 1 roda raiz 81360 1º de dezembro 14:45 /usr/bin/scp
Responder1
O comando acima falha com o erro especificado, mas o seguinte comando funciona quando estou conectado ao meu Mac como máquina local:
scp -P 22003 [email protected]:Data/path/i* /Full/Path/On/Mac/
Portanto, do servidor que você não consegue acessar, /usr/bin/scp
você recebe um erro "Acesso negado". Pode haver vários motivos para tal erro, permissões de arquivo, por exemplo.
Como você pode fazer isso scp
do seu Mac e ssh
do servidor para o seu Mac, acho que é isso que você deve fazer por enquanto. ssh
no Mac e scp
de lá.
Para solucionar o problema no seu servidor, primeiro verifique se você tem permissões de execução /usr/bin/scp
no servidor:
ls -l /usr/bin/scp
Você vê algo como:
-rwxr-xr-x 1 root root 84104 Jan 16 14:28 /usr/bin/scp
^ ^ ^
Basicamente, o arquivo pertence ao usuário root
(com leitura, gravação, exec), os membros do grupo root
têm leitura e execução, assim como o mundo (todos os demais logados)
Se você tiver x
(executar) privs no comando, use scp -v
para aumentar a verbosidade (você pode adicionar mais v
's, até três, iirc), você poderá ver uma mensagem informando o que está errado. Você também pode tentar ldd /usr/bin/scp
ver se todas as dependências estão lá e são legíveis.