Windows 10仮想マシンがあり、AzureのLinuxマシンにファイルを転送したいと思います。
インストールしましたAADSSHログインAzureポータルを介してLinuxマシンから拡張します。 Windows 10にインストールされているAzure CLIを介してSSH接続を確認するために、次のようにLinuxシステムに接続しました.
az login
az ssh vm --ip 10.11.11.11
正常にWindows 10でpowershellを介してLinuxでファイルを転送しようとしました。
scp file.sh [email protected]:/opt/Linux/
パスワードを求められますが、動作しません。リンク後にファイルを転送するには、Azure cliコマンドを使用する必要があるという印象を受けました。ログイン、検索してみました。コピーしかし、これは正しくないようです。
Powershellでこれを行うと、次の結果が表示されます。
ssh [email protected]@10.11.11.11
それは私に言う:権限が拒否されました(公開鍵)
しかし、これを行うと:
az ssh vm --ip 10.11.11.11
入ることができます!
どうすればいいですか?私は何を見逃していますか?
答え1
az scp
Azure CLIはファイル転送を直接サポートしておらず、コマンドはありませんaz ssh scp
。ただし、OpenSSHベースのアプリケーションを間接的にサポートしています。
まず、次のコマンドを実行してください。
az ssh config --ip * --file ./azure-sshconfig --keys-destination-folder ./azure-keys
これaz ssh config
注文するOpenSSHスタイルの構成を含むフォルダとAzure VMにアクセスするためのキーを含むローカルazure-sshconfig
ファイルが作成されます。azure-keys
この記事を書いた時点では、キーの寿命は限られており、1時間後に期限切れになり、設定できないようです。
設定とキーがある場合scp
など、他のOpenSSHユーティリティを使用できますsftp
。このユーティリティはすべて-F ./azure-sshconfig
パラメータを使用して一時キーを使用するように指示します。
scp -F ./azure-sshconfig <local file> <vm name>:~/temp
rsync
渡して動作させることも可能です(例えばWSLから)--rsh 'ssh -F ./azure-sshconfig'
。この場合、パラメータrsync
は直接許可されませんが、完全に上書き-F sshconfig
できます。ssh
まだ試していませんが、うまくいきます。