Linux Can';从scp到Azure';s虚拟机
我正在尝试将一些文件从我的计算机复制到Azure VM。我事先说我可以ssh Azure的VM,我在创建机器的过程中提供了我的公钥。这两台机器都是Linux 当我尝试时: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/中查
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/
中,这就是为什么我必须指定正确路径的原因(我很遗憾)。我知道原因,回答得很好。我想你最好把它添加到你的答案中。这有助于我解决我的问题。