SSH SCP Локальный файл для удаленного в терминале Mac Os X
Я пытаюсь скопировать локальный файл magento.tar.gz с моей локальной машины на удаленный сервер, используя SSH через VPN. Это соединение с внутренним IP-адресом виртуальной машины, который я использовал здесь как xx.x.x.xx.
У меня есть полный доступ "sudo" к учетной записи SSH, поэтому не должно быть никаких проблем с копированием. Я пробовал следующее:
Я пробовал следующее (файл magento.tar.gz уже находится в локальном корневом каталоге)
sudo scp magento.tar.gz [email protected]/var/www/
Это требует ввода моего локального пароля. Впоследствии возвращается cp: [email protected]/var/www: Not a directory
sudo scp /Users/myname/magento.tar.gz [email protected]/var/www/
Возвращает то же самое.
Нужно ли включать SSH там где-нибудь?
Нужно ли сначала подключаться через SSH к сайту?
Боковое примечание: мне удалось подключиться через SSH к серверу, перейти в каталог и сделать папку и удалить ее с помощью sudo mkdir
и т.д., поэтому я определенно имею разрешения.
Ответы
Ответ 1
Сначала вам нужно добавить :
после IP-адреса, чтобы указать, что путь следующий:
scp magento.tar.gz [email protected]:/var/www
Я не думаю, что вам нужно sudo
scp
. В этом случае он не влияет на удаленный компьютер, а только на локальную команду.
Тогда, если ваш user
@xx.x.x.xx не имеет доступа на запись к /var/www
, вам нужно сделать это в 2 раза:
Скопировать на удаленный сервер в домашней папке (:
представляет вашу удаленную домашнюю папку, при необходимости используйте :subfolder/
или :/home/user/
для полного пути):
scp magento.tar.gz [email protected]:
Затем SSH и переместите файл:
ssh [email protected]
sudo mv magento.tar.gz /var/www
Ответ 2
Чтобы уточнить ответ JScoobyCed, команда scp не может скопировать файлы в каталоги, требующие административного разрешения. Однако вы можете использовать команду scp для копирования в каталоги, принадлежащие удаленному пользователю.
Итак, чтобы скопировать в каталог, требующий прав root, сначала скопируйте этот файл в каталог, принадлежащий удаленному пользователю, используя команду scp. Затем вы должны войти в удаленную учетную запись, используя ssh. После входа в систему вы можете переместить файл в выбранный вами каталог с помощью команды sudo mv. Короче говоря, следующие команды:
Используя scp, скопируйте файл в каталог в удаленной учетной записи пользователя, например в папку "Документы":
scp /path/to/your/local/file [email protected]_address:/home/remoteUser/Documents
Затем войдите в учетную запись удаленного пользователя с помощью ssh, а затем переместите файл в ограниченный каталог с помощью sudo:
ssh [email protected]_address
sudo mv /home/remoteUser/Documents/file /var/www
Ответ 3
Следите, чтобы в вашем файле не было :
. Я обнаружил, что мне пришлось mv blah-07-08-17-02:69.txt no_colons.txt
, а затем scp no-colons.txt server:
, затем не забывайте mv
вернуться на сервер. На всякий случай это было проблемой.