我有一个Windows 10虚拟机,我想将一个文件传输到Azure上的linux机器上。
我通过Azure门户在linux机器上安装了AADSSHLogin扩展。通过安装在Windows 10上的Azure CLI,我以这种方式连接到linux机器,以检查ssh连接:
az login
az ssh vm --ip 10.11.11.11这是成功的,我尝试通过Windows 10上的powershell在Linux上传输文件:
scp file.sh myuser@10.11.11.11:/opt/Linux/它问我密码,但不起作用。我有这样的印象,我必须使用一个azure命令来传输文件,因为我已经连接了az登录,我已经搜索了,并且有azcopy,但它似乎不是正确的。
我注意到如果我在powershell上这么做:
ssh myuser@dominio.org@10.11.11.11它告诉我:拒绝许可(公开密钥)
但如果我这么做了
az ssh vm --ip 10.11.11.11我能进去!
我该怎么办?我遗漏了什么?
发布于 2022-08-21 03:38:49
Azure不支持文件直接传输;没有az scp或az ssh scp命令。但它确实间接地支持基于OpenSSH的应用程序。
首先,运行以下命令:
az ssh config --ip * --file ./azure-sshconfig --keys-destination-folder ./azure-keysaz ssh config命令将创建一个本地azure-sshconfig文件以及一个包含OpenSSH样式配置和能够访问Azure的密钥的azure-keys文件夹。请注意,键的生存期有限;在撰写本文时,它们将在一个小时后过期,这似乎是不可配置的。
一旦有了配置和键,就可以使用其他OpenSSH实用程序,如scp和sftp,这两个工具都采用-F ./azure-sshconfig参数来指示它们使用临时键:
scp -F ./azure-sshconfig <local file> <vm name>:~/temp还可以通过传递rsync (例如,在WSL中)传递--rsh 'ssh -F ./azure-sshconfig' --在本例中,rsync不直接使用-F sshconfig参数,但可以完全覆盖其ssh。我还没试过,但应该能用。
https://unix.stackexchange.com/questions/692380
复制相似问题