我创建了 Azure Ubuntu 服务器 16.04 VM 并安装了 LAMP,现在我想将我的项目文件上传到 Azure VM,我该怎么做?我有 SSH 公钥文本。我可以通过 ssh 存档它吗?
启用 HTTP、https 和 ssh 的入站规则。
步骤1:
scp -r foo [email protected]:/some/remote/directory/bar
错误:
Permission denied (publickey)
第2步:
scp -i ~/.ssh/id_rsa.pub /var/www/html [email protected]: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 [email protected]`
注意:它将密钥附加到虚拟机的“/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 [email protected]:phpinfo.php /var/www/html
错误:
cp: cannot copy a directory, '/var/www/html', into itself, '/var/www/html/html'
Permission denied (publickey).
答案1
今天遇到了同样的错误,我使用此命令解决了它(不尝试直接将其添加到特定文件夹,然后移动它):
scp -r myFile.jar username@hostname:~/.
希望这能够帮助到别人...
答案2
假设您自己处于 *nix 环境中,您是否能够使用公钥验证通过 ssh 连接到服务器?
ssh [email protected]
假设成功了,请确保您的用户有权在该文件夹中写入,如果没有,您可以将您的用户添加到 Web 服务器用户组:usermod -aG www-data azureuser
将“www-data”替换为拥有文件夹 /var/www/html 的任何组
一旦权限被排序,类似下面的操作就可以工作:
scp -r ./folder [email protected]:/var/www/html
或者
scp ./index.html [email protected]:/var/www/html/