Arquivo local SSH SCP para remoto no terminal Mac Os X


90

Estou tentando copiar um arquivo local 'magento.tar.gz' de minha máquina local para um servidor remoto usando SSH por meio de uma VPN. Esta é a conexão com o IP interno da máquina virtual, que usei como xx.xxxx aqui.

Eu tenho acesso 'sudo' total na conta SSH, então não deve haver nenhum problema ao copiar. Eu tentei o seguinte:

Tentei o seguinte (o arquivo magento.tar.gz já está no diretório raiz local)

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/

Isso me pede para digitar minha senha local. Depois retornacp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/var/www/

Retorna o mesmo.

Eu preciso incluir um SSH em algum lugar?

Preciso me conectar via SSH ao site primeiro?

Nota lateral: Eu consegui conectar via SSH ao servidor, navegar até o diretório e criar uma pasta e excluí-la usando sudo mkdiretc, então definitivamente tenho permissões.

Respostas:


202

Em primeiro lugar, você precisa adicionar :após o endereço IP para indicar que o caminho é o seguinte:

scp magento.tar.gz user@xx.x.x.xx:/var/www

Eu não acho que você precisa para sudoo scp. Nesse caso, não afeta a máquina remota, apenas o comando local.

Então, se o seu user@ xx.xxxx não tiver acesso de gravação /var/www, você precisará fazê-lo em 2 vezes:

Copie para o servidor remoto em sua pasta pessoal ( :representa sua pasta pessoal remota, use :subfolder/se necessário ou :/home/user/para o caminho completo):

scp magento.tar.gz user@xx.x.x.xx:

Então SSH e mova o arquivo:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

Obrigado. Eu tentei com os dois pontos, mas obtiveram permissão negada - fui informado de que tenho acesso total ao sudo, portanto, as permissões não devem ser um problema.
James

1
Obrigado!!! Tive de usar SSH no remoto e no pwd para encontrar o diretório padrão para o qual fui levado, que era / home / nome de usuário - scp magento.tar.gz usuário@xx.xxxx: / home / nome de usuário / resolveu o problema!
James

19

Só para esclarecer a resposta dada por JScoobyCed, o comando scp não pode copiar arquivos para diretórios que requeiram permissão administrativa. No entanto, você pode usar o comando scp para copiar para diretórios que pertencem ao usuário remoto.

Portanto, para copiar para um diretório que requer privilégios de root, você deve primeiro copiar esse arquivo para um diretório pertencente ao usuário remoto usando o comando scp. Em seguida, você deve fazer login na conta remota usando ssh. Uma vez logado, você pode mover o arquivo para o diretório de sua escolha usando o comando sudo mv. Resumindo, os comandos a serem usados ​​são os seguintes:

Usando scp, copie o arquivo para um diretório na conta do usuário remoto, por exemplo, o diretório Documentos:

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

Em seguida, faça login na conta do usuário remoto usando ssh e mova o arquivo para um diretório restrito usando sudo:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www

0

Observe se o nome do seu arquivo também não :consta. Descobri que precisava mv blah-07-08-17-02:69.txt no_colons.txte então scp no-colons.txt server:não se esqueça de mvvoltar ao servidor. Apenas no caso de isso ser um problema.


1
Isso não é um problema se você apenas adicionar ./antes do nome local, comoscp ./blah-07-08-17-02:69.txt server:
Anders Tornblad
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.