Как загрузить локальные файлы в виртуальную машину Azure Linux? - моя машина для Azure VM

784
151291

Я создал виртуальную машину Azure Ubuntu 16.04 VM и установил LAMP, теперь я хотел бы загрузить файлы своего проекта на виртуальную машину Azure. Как это сделать? У меня есть текст открытого ключа SSH. Могу ли я заархивировать это через ssh?

включены входящие правила для HTTP, https и ssh.

Шаг 1:

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Ошибка:

Permission denied (publickey)

Шаг 2:

scp -i ~/.ssh/id_rsa.pub /var/www/html azureuser@sample.region.cloudapp.azure.com:phpinfo.php /var/www/html 

Ошибка:

cp: omitting directory '/var/www/html' Warning: Identity file /home/azureuser/.ssh/id_rsa.pub not accessible: No such file or directory. Permission denied (publickey) 

Шаг 3:

ssh-copy-id -i ~/.ssh/id_rsa.pub azureuser@sample.region.cloudapp.azure.com` 

примечание: он добавляет ключ в VM `/home/.ssh/authorized_keys

Ошибка:

cp: omitting directory '/var/www/html' Enter passphrase for key '/home/azureuser/.ssh/authorized_keys': Permission denied (publickey) 

Шаг 4: повторите попытку с опцией -r

azureuser@myVM:~$ scp -r /var/www/html azureuser@sample.region.cloudapp.azure.com:phpinfo.php /var/www/html 

Ошибка:

cp: cannot copy a directory, '/var/www/html', into itself, '/var/www/html/html' Permission denied (publickey). 
0
Используйте параметр `-i` для команды` scp` и укажите полный путь к вашему приватному ключу SSH к этой опции -i Alex 5 лет назад 0
@ Алекс - выдает ошибку, обновил мой вопрос. 151291 5 лет назад 0
@ 151291, добавьте опцию "-r" в вашу команду и скопируйте каталог и его содержимое. Nancy Xiong 5 лет назад 0
@Alex - `cp: невозможно скопировать каталог, '/ var / www / html', в себя, '/ var / www / html / html' В доступе отказано (publickey) .` 151291 5 лет назад 0
@ Алекс - Я думаю, нужно изменить разрешение пути -i ssh. это может помочь. 151291 5 лет назад 0
@ 151291 Вы можете выбрать путь назначения, для которого у azureuser есть права на запись, например `/ home / azureuser / test`. Также убедитесь, что у вашего текущего пользователя есть разрешения на исходном хосте. Nancy Xiong 5 лет назад 0
@ NancyXiong-MSFT Я новичок в лазури, могу ли я получить больше объяснений по этому поводу? Примеры команд помогают мне больше. 151291 5 лет назад 0
Когда вы используете `scp`, вы должны использовать закрытый ключ в опции` -i`, а не публичный. Открытый ключ должен находиться на стороне Azure в файле `~ / .ssh / authorized_keys`. Кроме того, когда вы пытаетесь `scp`, убедитесь, что разрешения закрытого ключа равны 600 (он не должен быть доступен для чтения никому, кроме вас), иначе операция будет отклонена. Также убедитесь, что используемые ключи имеют исходное окончание строки (строка должна заканчиваться только `\ n` (0x0A), а не окном` \ r \ n` 0x0D, 0x0A). Alex 5 лет назад 0
@ Алекс - как мне найти путь к моему личному ключу? 151291 5 лет назад 0
@ 151291 Ключи должны быть в парах. Закрытый ключ обычно сохраняется в файле ~ / .ssh / id_rsa. Nancy Xiong 5 лет назад 1
Когда вы получаете доступ к Azure, вам предоставляются 2 файла шифрования, один из которых - открытый ключ, который должен находиться на удаленном сервере, а другой - закрытый ключ, который используется на стороне клиента для подключения к удаленному серверу. Путь, в котором вы сохранили закрытый ключ, - это путь, который вам нужно указать для опции `-i` в scp Alex 5 лет назад 0
@ NancyXiong-MSFT, @alex - да, использовал закрытый ключ к -i, сейчас пробовал с scp, ошибка открытого ключа ушла, но получение каталога не найдено, исключение также с использованием -r. `scp /var/www/html/info.php azureuser@sample.region.cloudapp.azure.com: / var / www / html /var/www/html/info.php: нет такого файла или каталога`. 151291 5 лет назад 0
Спасибо всем, это работает, последняя проблема из-за работы в лазурном пространстве, я должен использовать свой локальный машинный терминал. 151291 5 лет назад 0

1 ответ на вопрос

0
Bennett

Предполагая, что вы сами находитесь в среде * nix, можете ли вы подключиться к серверу ssh с помощью открытого ключа?

user@mypc:> ssh azureuser@sample.region.cloudapp.azure.com 

Предполагая, что это успешно, убедитесь, что у вашего пользователя есть права на запись в эту папку, если нет, вы можете добавить своего пользователя в группу пользователей веб-сервера: usermod -aG www-data azureuser заменив «www-data» любой группой, которой принадлежит папка / var / www / html

После сортировки разрешений должно работать что-то вроде следующего:

user@mypc:> scp -r ./folder azureuser@sample.region.cloudapp.azure.com:/var/www/html 

или же

user@mypc:> scp ./index.html azureuser@sample.region.cloudapp.azure.com:/var/www/html/ 
Возможно, стоит сначала попробовать что-то подобное в качестве теста: `user @ mypc:> scp ./testfile.txt azureuser@sample.region.cloudapp.azure.com: ~ /` Это устранит проблему с аутентификацией открытого ключа. Bennett 5 лет назад 0

Похожие вопросы