Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Can';从scp到Azure';s虚拟机_Linux_Azure_Ssh_Virtual Machine_Scp - Fatal编程技术网

Linux Can';从scp到Azure';s虚拟机

Linux Can';从scp到Azure';s虚拟机,linux,azure,ssh,virtual-machine,scp,Linux,Azure,Ssh,Virtual Machine,Scp,我正在尝试将一些文件从我的计算机复制到Azure VM。我事先说我可以ssh Azure的VM,我在创建机器的过程中提供了我的公钥。这两台机器都是Linux 当我尝试时: sudo-scp/path/ca.crtubuntu@ip.add.res.s:~/ 我在输出中收到: 权限被拒绝(公钥)。 断开连接 我没有指向根目录(我的文件在根目录中,这就是sudo的原因);我没有指向错误的用户;如果我可以通过ssh连接,为什么应该拒绝scp?使用sudo访问根文件,scp将在/root/.ssh/中查

我正在尝试将一些文件从我的计算机复制到Azure VM。我事先说我可以ssh Azure的VM,我在创建机器的过程中提供了我的公钥。这两台机器都是Linux

当我尝试时:

sudo-scp/path/ca.crtubuntu@ip.add.res.s:~/

我在输出中收到:

权限被拒绝(公钥)。
断开连接


我没有指向根目录(我的文件在根目录中,这就是sudo的原因);我没有指向错误的用户;如果我可以通过ssh连接,为什么应该拒绝scp?

使用
sudo
访问根文件,
scp
将在
/root/.ssh/
中查找标识文件
id\u rsa
,而不是在
/home/user/.ssh/
中。这就是为什么我必须在scp命令中指定身份文件(而不是公钥)

sudo scp-i~/.ssh/id\u rsa/path/ca.crtubuntu@ip.add.res.s:/home/ubuntu/

我希望这对其他人有用


干杯。

scp
将默认使用
~/.ssh/id\u rsa
。我想如果你不使用
-I
也会得到同样的结果。“你还改变了什么?”沃尔特·姆斯夫特(Walter MSFT)没别的,就是那样。使用
scp-v-v-v
我注意到(显然)使用sudo它将在
/root/.ssh/
中查找id\u rsa文件,而不是在
/home/user/.ssh/
中,这就是为什么我必须指定正确路径的原因(我很遗憾)。我知道原因,回答得很好。我想你最好把它添加到你的答案中。这有助于我解决我的问题。