无法scp到Azure的虚拟机

我试图从我的机器上复制一些文件到Azure虚拟机。 我事先说过,我可以ssh Azure的虚拟机,我在创build机器的时候给了我的公钥。 这两台机器都是Linux。

当我尝试:

sudo scp /path/ca.crt ubuntu@ip.add.res.s:~/

我收到输出:

Permission denied (publickey). lost connection

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

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

sudo scp -i ~/.ssh/id_rsa /path/ca.crt ubuntu@ip.add.res.s:/home/ubuntu/

我希望这可以对别人有用。

干杯。