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 [email protected]/var/www/

Isso me pede para digitar minha senha local. Depois retornacp: [email protected]/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz [email protected]/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.

James
fonte

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 [email protected]:/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 [email protected]:

Então SSH e mova o arquivo:

ssh [email protected]
sudo mv magento.tar.gz /var/www
JScoobyCed
fonte
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á[email protected]: / 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
legend12
fonte
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.

pjammer
fonte
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