az ssh

注意

此參考是 Azure CLI 的 SSH 延伸模組的一部分 (2.45.0 版或更高版本)。 擴充功能會在您第一次執行 az ssh 命令時自動安裝。 深入了解擴充功能。

使用 AAD 核發的憑證,透過 SSH 連線到資源 (Azure VM、Arc 伺服器等)。

透過 SSH 連線到已啟用 Arc 的伺服器,而不需要公用 IP 位址或 SSH 到 Azure 虛擬機器。 AAD 發行的會開啟憑證以供目前僅支援 Linux 的驗證。

命令

名稱 Description 類型 狀態
az ssh arc

透過 SSH 連線到 Azure Arc 伺服器。

擴充 GA
az ssh cert

建立由 AAD 簽署的 SSH RSA 憑證。

擴充 GA
az ssh config

為支援 OpenSSH 組態和憑證的用戶端,建立資源的 SSH 組態(Azure VM、Arc Server 等)。

擴充 GA
az ssh vm

透過 SSH 連線到 Azure VM 或 Arc 伺服器。

擴充 GA

az ssh arc

透過 SSH 連線到 Azure Arc 伺服器。

使用者可以使用 AAD 簽發的憑證或使用本機使用者認證登入。 我們建議使用 AAD 發行的憑證登入。 若要使用本機使用者認證進行 SSH,您必須使用 --local-user 參數提供本機使用者名稱。

az ssh arc [--certificate-file]
           [--local-user]
           [--name]
           [--port]
           [--private-key-file]
           [--public-key-file]
           [--rdp]
           [--resource-group]
           [--resource-type]
           [--ssh-client-folder]
           [--ssh-proxy-folder]
           [--yes]
           [<SSH_ARGS>]

範例

使用 AAD 簽發的憑證,為 SSH 提供資源組名和電腦名稱稱

az ssh arc --resource-group myResourceGroup --name myMachine

使用自訂私密金鑰檔案

az ssh arc --resource-group myResourceGroup --name myMachine --private-key-file key --public-key-file key.pub

使用其他 ssh 引數

az ssh arc --resource-group myResourceGroup --name myMachine -- -A -o ForwardX11=yes

使用憑證式驗證,將本機使用者名稱提供給 SSH 與本機使用者認證。

az ssh arc --local-user username --resource-group myResourceGroup --name myMachine --certificate-file cert.pub --private-key-file key

使用金鑰型驗證,將本機使用者名稱提供給 SSH 與本機使用者認證。

az ssh arc --local-user username --resource-group myResourceGroup --name myMachine --private-key-file key

使用密碼型驗證,將本機使用者名稱提供給 SSH 與本機使用者認證。

az ssh arc --local-user username --resource-group myResourceGroup --name myMachine

提供 SSH 用戶端資料夾以使用該資料夾中的 ssh 可執行檔,例如 ssh-keygen.exe 和 ssh.exe。 如果未提供,擴充功能會嘗試使用預先安裝的 OpenSSH 用戶端(在 Windows 上,延伸模組會在 C:\Windows\System32\OpenSSH 下尋找預先安裝的可執行檔。

az ssh arc --resource-group myResourceGroup --name myMachine --ssh-client-folder "C:\Program Files\OpenSSH"

透過 SSH 開啟 RDP 連線。 適用于透過 RDP 連線到沒有公用 IP 位址的 Arc 伺服器。 目前僅支援 Windows 用戶端。

az ssh arc --resource-group myResourceGroup --name myVM --local-user username --rdp

選擇性參數

--certificate-file -c

憑證檔案的路徑。

--local-user

本機使用者的使用者名稱。

--name --vm-name -n

Arc Server 的名稱。

--port

要連線到遠端主機上的埠。

--private-key-file -i

RSA 私密金鑰檔案路徑。

--public-key-file -p

RSA 公開金鑰檔案路徑。

--rdp --winrdp

透過 SSH 啟動 RDP 連線。

預設值: False
--resource-group -g

資源組名。 您可以使用 來設定預設群組 az configure --defaults group=<name>

--resource-type

資源類型應該是 Microsoft.HybridCompute/machines 或 Microsoft。連線edVMwareSphere/virtualMachines。

--ssh-client-folder

包含 ssh 可執行檔的資料夾路徑(ssh.exe、ssh-keygen.exe 等)。 如果未提供,則預設為 SSH 預先安裝。

--ssh-proxy-folder

應儲存 ssh Proxy 的資料夾路徑。 如果未提供,則預設為使用者主目錄中的 .clientsshproxy 資料夾。

--yes --yes-without-prompt -y

更新服務組態而不提示使用者。

預設值: False
<SSH_ARGS>

傳遞至 OpenSSH 的其他引數。

全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 來設定預設訂用 az account set -s NAME_OR_ID 帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

az ssh cert

建立由 AAD 簽署的 SSH RSA 憑證。

az ssh cert [--file]
            [--public-key-file]
            [--ssh-client-folder]

範例

建立 AAD 簽署的短期 SSH 憑證

az ssh cert --public-key-file ./id_rsa.pub --file ./id_rsa-aadcert.pub

提供 SSH 用戶端資料夾以使用該資料夾中的 ssh 可執行檔,例如 ssh-keygen.exe。 如果未提供,擴充功能會嘗試使用預先安裝的 OpenSSH 用戶端(在 Windows 上,延伸模組會在 C:\Windows\System32\OpenSSH 下尋找預先安裝的可執行檔。

az ssh cert --file ./id_rsa-aadcert.pub --ssh-client-folder "C:\Program Files\OpenSSH"

選擇性參數

--file -f

要寫入 SSH 憑證的檔案路徑,預設為具有 -aadcert.pub appened 的公開金鑰路徑。

--public-key-file -p

RSA 公開金鑰檔案路徑。 如果未提供,產生的金鑰組會儲存在與 --file 相同的目錄中。

--ssh-client-folder

包含 ssh 可執行檔的資料夾路徑(ssh.exe、ssh-keygen.exe 等)。 如果未提供,則預設為 SSH 預先安裝。

全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 來設定預設訂用 az account set -s NAME_OR_ID 帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

az ssh config

為支援 OpenSSH 組態和憑證的用戶端,建立資源的 SSH 組態(Azure VM、Arc Server 等)。

支援設定 SSH 命令的其他軟體(git/rsync/etc)可以設定為使用組態檔,方法是將命令設定為 'ssh -F /path/to/config',例如 rsync -e 'ssh -F /path/to/config'。 使用者可以建立 SSH 組態檔,以使用 AAD 簽發的憑證或本機使用者認證。

az ssh config --file
              [--certificate-file]
              [--ip]
              [--keys-dest-folder]
              [--local-user]
              [--name]
              [--overwrite]
              [--port]
              [--prefer-private-ip]
              [--private-key-file]
              [--public-key-file]
              [--resource-group]
              [--resource-type]
              [--ssh-client-folder]
              [--ssh-proxy-folder]
              [--yes]

範例

提供資源群組和電腦名稱稱,以使用 AAD 簽發的憑證建立設定、儲存在本機檔案中,然後透過 SSH 連線到該資源

az ssh config --resource-group myResourceGroup --name myVm --file ./sshconfig
ssh -F ./sshconfig myResourceGroup-myVM

為要建立設定的 Azure VM 提供公用 IP(或主機名稱),然後透過 SSH 連線到該 VM

az ssh config --ip 1.2.3.4 --file ./sshconfig
ssh -F ./sshconfig 1.2.3.4

提供本機使用者以使用本機使用者認證建立設定、儲存在本機檔案中,然後透過 SSH 連線到該資源

az ssh config --resource-group myResourceGroup --name myMachine --local-user username --certificate-file cert --private-key-file key --file ./sshconfig
ssh -F ./sshconfig MyResourceGroup-myMachine-username

提供金鑰目的地資料夾來儲存產生的金鑰和憑證。 如果未提供,SSH 金鑰會儲存在組態檔旁邊的新資料夾 「az_ssh_config」。

az ssh config --ip 1.2.3.4 --file ./sshconfig --keys-destination-folder /home/user/mykeys

建立一般設定以搭配任何主機使用

#Bash
az ssh config --ip \* --file ./sshconfig
#PowerShell
az ssh config --ip * --file ./sshconfig

其他軟體的範例

#Bash
az ssh config --ip \* --file ./sshconfig
rsync -e 'ssh -F ./sshconfig' -avP directory/ myvm:~/directory
GIT_SSH_COMMAND="ssh -F ./sshconfig" git clone myvm:~/gitrepo

提供 SSH 用戶端資料夾以使用該資料夾中的 ssh 可執行檔,例如 ssh-keygen.exe。 如果未提供,擴充功能會嘗試使用預先安裝的 OpenSSH 用戶端(在 Windows 上,延伸模組會在 C:\Windows\System32\OpenSSH 下尋找預先安裝的可執行檔。

az ssh config --file ./myconfig --resource-group myResourceGroup --name myVM --ssh-client-folder "C:\Program Files\OpenSSH"

提供目標的資源類型。 當 Azure VM 和 Arc Server 在相同資源群組中具有相同名稱時很有用。 資源類型可以是 Arc Server 的 「Microsoft.HybridCompute」 或 Azure 虛擬機器的 「Microsoft.Compute」。

az ssh config --resource-type [Microsoft.Compute/virtualMachines|Microsoft.HybridCompute/machines] --resource-group myResourceGroup --name myVM --file ./myconfig

必要參數

--file -f

要寫入 SSH 組態的檔案路徑。

選擇性參數

--certificate-file -c

憑證檔案的路徑。

--ip

VM 的公用 IP 位址(或主機名稱)。

--keys-dest-folder --keys-destination-folder

將儲存新產生的金鑰的資料夾。

--local-user

本機使用者的使用者名稱。

--name --vm-name -n

VM 的名稱。

--overwrite

如果設定此旗標,則會覆寫組態檔。

預設值: False
--port

SSH 埠。

--prefer-private-ip

如果有的話,將會使用私人 IP。 預設只會使用公用 IP。

預設值: False
--private-key-file -i

RSA 私密金鑰檔案路徑。

--public-key-file -p

RSA 公開金鑰檔案路徑。

--resource-group -g

資源組名。 您可以使用 來設定預設群組 az configure --defaults group=<name>

--resource-type

資源類型應該是 Microsoft.Compute/virtualMachines、Microsoft.HybridCompute/machines 或 Microsoft。連線edVMwareSphere/virtualMachines。

--ssh-client-folder

包含 ssh 可執行檔的資料夾路徑(ssh.exe、ssh-keygen.exe 等)。 如果未提供,則預設為 SSH 預先安裝。

--ssh-proxy-folder

應儲存 ssh Proxy 的資料夾路徑。 如果未提供,則預設為使用者主目錄中的 .clientsshproxy 資料夾。

--yes --yes-without-prompt -y

更新服務組態而不提示使用者。

預設值: False
全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 來設定預設訂用 az account set -s NAME_OR_ID 帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

az ssh vm

透過 SSH 連線到 Azure VM 或 Arc 伺服器。

使用者可以使用 AAD 簽發的憑證或使用本機使用者認證登入。 我們建議使用 AAD 發行的憑證登入。 若要使用本機使用者認證進行 SSH,您必須使用 --local-user 參數提供本機使用者名稱。

az ssh vm [--certificate-file]
          [--hostname]
          [--local-user]
          [--name]
          [--port]
          [--prefer-private-ip]
          [--private-key-file]
          [--public-key-file]
          [--rdp]
          [--resource-group]
          [--resource-type]
          [--ssh-client-folder]
          [--ssh-proxy-folder]
          [--yes]
          [<SSH_ARGS>]

範例

使用 AAD 簽發的憑證,為 SSH 提供資源組名和電腦名稱稱

az ssh vm --resource-group myResourceGroup --name myVM

使用 AAD 簽發的憑證,將 VM 的公用 IP (或主機名稱) 提供給 SSH

az ssh vm --ip 1.2.3.4
az ssh vm --hostname example.com

使用自訂私密金鑰檔案

az ssh vm --ip 1.2.3.4 --private-key-file key --public-key-file key.pub

使用其他 ssh 引數

az ssh vm --ip 1.2.3.4 -- -A -o ForwardX11=yes

提供目標的資源類型。 當 Azure VM 和 Arc Server 在相同資源群組中具有相同名稱時很有用。 資源類型可以是 Arc Server 的 「Microsoft.HybridCompute」 或 Azure 虛擬機器的 「Microsoft.Compute」。

az ssh vm --resource-type [Microsoft.Compute/virtualMachines|Microsoft.HybridCompute/machines] --resource-group myResourceGroup --name myVM

使用憑證式驗證,將本機使用者名稱提供給 SSH 與本機使用者認證。

az ssh vm --local-user username --ip 1.2.3.4 --certificate-file cert.pub --private-key-file key

使用金鑰型驗證,將本機使用者名稱提供給 SSH 與本機使用者認證。

az ssh vm --local-user username --resource-group myResourceGroup --name myVM --private-key-file key

使用密碼型驗證,將本機使用者名稱提供給 SSH 與本機使用者認證。

az ssh vm --local-user username --resource-group myResourceGroup --name myArcServer

提供 SSH 用戶端資料夾以使用該資料夾中的 ssh 可執行檔,例如 ssh-keygen.exe 和 ssh.exe。 如果未提供,擴充功能會嘗試使用預先安裝的 OpenSSH 用戶端(在 Windows 上,延伸模組會在 C:\Windows\System32\OpenSSH 下尋找預先安裝的可執行檔。

az ssh vm --resource-group myResourceGroup --name myVM --ssh-client-folder "C:\Program Files\OpenSSH"

透過 SSH 開啟 RDP 連線。 適用于透過 RDP 連線到沒有公用 IP 位址的 Arc 伺服器。 目前僅支援 Windows 用戶端。

az ssh vm --resource-group myResourceGroup --name myVM --local-user username --rdp

選擇性參數

--certificate-file -c

使用本機使用者認證時用於驗證的憑證檔案路徑。

--hostname --ip

VM 的公用(或可連線的私人)IP 位址(或主機名稱)。

--local-user

本機使用者的使用者名稱。

--name --vm-name -n

VM 的名稱。

--port

SSH 埠。

--prefer-private-ip

會偏好私人 IP。 需要連線到私人 IP。

預設值: False
--private-key-file -i

RSA 私密金鑰檔案路徑。

--public-key-file -p

RSA 公開金鑰檔案路徑。

--rdp --winrdp

透過 SSH 啟動 RDP 連線。

預設值: False
--resource-group -g

資源組名。 您可以使用 來設定預設群組 az configure --defaults group=<name>

--resource-type

資源類型應該是 Microsoft.Compute/virtualMachines、Microsoft.HybridCompute/machines 或 Microsoft。連線edVMwareSphere/virtualMachines。

--ssh-client-folder

包含 ssh 可執行檔的資料夾路徑(ssh.exe、ssh-keygen.exe 等)。 如果未提供,則預設為 SSH 預先安裝。

--ssh-proxy-folder

應儲存 ssh Proxy 的資料夾路徑。 如果未提供,則預設為使用者主目錄中的 .clientsshproxy 資料夾。

--yes --yes-without-prompt -y

更新服務組態而不提示使用者。

預設值: False
<SSH_ARGS>

傳遞至 OpenSSH 的其他引數。

全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 來設定預設訂用 az account set -s NAME_OR_ID 帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。