Memecahkan masalah akses SSH ke server dengan dukungan Azure Arc
Artikel ini menyediakan informasi tentang pemecahan masalah dan penyelesaian masalah yang mungkin terjadi saat mencoba menyambungkan ke server dengan dukungan Azure Arc melalui SSH. Untuk informasi umum, lihat Gambaran umum akses SSH ke server dengan dukungan Arc.
Masalah sisi klien
Masalah ini disebabkan oleh kesalahan yang terjadi pada komputer tempat pengguna terhubung.
Tidak dapat menemukan biner klien
Masalah ini terjadi ketika biner SSH sisi klien yang diperlukan untuk terhubung tidak ditemukan. Kemungkinan kesalahan:
Failed to create ssh key file with error: \<ERROR\>.
Failed to run ssh command with error: \<ERROR\>.
Failed to get certificate info with error: \<ERROR\>.
Failed to create ssh key file with error: [WinError 2] The system cannot find the file specified.
Failed to create ssh key file with error: [Errno 2] No such file or directory: 'ssh-keygen'.
Resolusi:
- Berikan jalur ke folder yang berisi klien SSH yang dapat dieksekusi dengan menggunakan parameter
--ssh-client-folder
. - Pastikan folder berada dalam variabel lingkungan PATH untuk Azure PowerShell
Versi modul Azure PowerShell tidak cocok
Masalah ini terjadi ketika submodul Azure PowerShell yang diinstal, Az.Ssh.ArcProxy, tidak didukung oleh versi Az.Ssh yang diinstal. Kesalahan:
This version of Az.Ssh only supports version 1.x.x of the Az.Ssh.ArcProxy PowerShell Module. The Az.Ssh.ArcProxy module {ModulePath} version is {ModuleVersion}, and it is not supported by this version of the Az.Ssh module. Check that this version of Az.Ssh is the latest available.
Resolusi:
- Memperbarui modul Az.Ssh dan Az.Ssh.ArcProxy
Az.Ssh.ArcProxy tidak diinstal
Masalah ini terjadi ketika modul proksi tidak ditemukan di komputer klien. Kesalahan:
Failed to find the PowerShell module Az.Ssh.ArcProxy installed in this machine. You must have the Az.Ssh.Proxy PowerShell module installed in the client machine in order to connect to Azure Arc resources. You can find the module in the PowerShell Gallery (see: https://aka.ms/PowerShellGallery-Az.Ssh.ArcProxy).
Resolusi:
- Instal modul dari Galeri PowerShell:
Install-Module -Name Az.Ssh.ArcProxy
Pengguna tidak memiliki izin untuk menjalankan proksi
Masalah ini terjadi ketika pengguna tidak memiliki izin untuk menjalankan proksi SSH yang digunakan untuk menyambungkan. Kesalahan:
/bin/bash: line 1: exec: /usr/local/share/powershell/Modules/Az.Ssh.ArcProxy/1.0.0/sshProxy_linux_amd64_1.3.022941: cannot execute: Permission denied
CreateProcessW failed error:5 posix_spawnp: Input/output error
Resolusi:
- Pastikan bahwa pengguna memiliki izin untuk menjalankan file proksi.
Masalah sisi server
Tidak dapat tersambung setelah pratinjau publik
Jika pengguna telah berpartisipasi dalam pratinjau publik dan telah memperbarui agen Arc mereka dan Azure CLI/PowerShell ke rilis ketersediaan umum, konektivitas mungkin gagal.
Resolusi:
- Aktifkan kembali fungsionalitas di server dengan dukungan Azure Arc.
Lalu lintas SSH tidak diizinkan di server
Masalah ini terjadi ketika SSHD tidak berjalan di server, atau lalu lintas SSH tidak diizinkan di server. Kesalahan:
{"level":"fatal","msg":"sshproxy: error copying information from the connection: read tcp 192.168.1.180:60887-\u003e40.122.115.96:443: wsarecv: An existing connection was forcibly closed by the remote host.","time":"2022-02-24T13:50:40-05:00"}
{"level":"fatal","msg":"sshproxy: error connecting to the address: 503 connection to localhost:22 failed: dial tcp [::1]:22: connectex: No connection could be made because the target machine actively refused it.. websocket: bad handshake","proxyVersion":"1.3.022941"}
SSH connection is not enabled in the target port {Port}.
Resolusi:
- Pastikan bahwa layanan SSHD berjalan di server dengan dukungan Arc.
- Pastikan bahwa fungsionalitas diaktifkan di server berkemampuan Arc Anda pada port 22 (atau port nondefault lainnya)
az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
Masalah izin Azure
Penetapan peran yang salah untuk mengaktifkan konektivitas SSH
Masalah ini terjadi ketika pengguna saat ini tidak memiliki penetapan peran yang tepat untuk memberikan kontribusi ke sumber daya target. Kesalahan:
Client is not authorized to create a Default connectivity endpoint for {Name} in the Resource Group {ResourceGroupName}. This is a one-time operation that must be performed by an account with Owner or Contributor role to allow connections to target resource
Resolusi:
- Pastikan Anda memiliki peran Pemilik atau Kontributor pada sumber daya atau hubungi pemilik/kontributor sumber daya untuk menyiapkan konektivitas SSH.
Penetapan peran yang salah untuk disambungkan
Masalah ini terjadi ketika pengguna saat ini tidak memiliki penetapan peran yang tepat pada sumber daya target, khususnya kurangnya read
izin. Kemungkinan kesalahan:
Unable to determine the target machine type as Azure VM or Arc Server
Unable to determine that the target machine is an Arc Server
Unable to determine that the target machine is an Azure VM
Permission denied (publickey).
Request for Azure Relay Information Failed: (AuthorizationFailed) The client '\<user name\>' with object id '\<ID\>' does not have authorization to perform action 'Microsoft.HybridConnectivity/endpoints/listCredentials/action' over scope '/subscriptions/\<Subscription ID\>/resourceGroups/\<Resource Group\>/providers/Microsoft.HybridCompute/machines/\<Machine Name\>/providers/Microsoft.HybridConnectivity/endpoints/default' or the scope is invalid. If access was recently granted, please refresh your credentials.
Resolusi:
- Pastikan Anda memiliki peran Masuk pengguna Lokal Komputer Virtual pada sumber daya yang Anda sambungkan. Jika menggunakan login Microsoft Entra, pastikan Anda memiliki peran Masuk Pengguna Komputer Virtual atau Peran Masuk Administrator Komputer Virtual dan ekstensi Masuk Microsoft Entra SSH diinstal di Server yang Diaktifkan Arc.
HYBRIDConnectivity RP tidak terdaftar
Masalah ini terjadi ketika penyedia sumber daya HybridConnectivity tidak terdaftar untuk langganan. Kesalahan:
- Permintaan Informasi Azure Relay Gagal: Kode (NoRegisteredProviderFound): NoRegisteredProviderFound
Resolusi:
- Jalankan
az provider register -n Microsoft.HybridConnectivity
- Konfirmasi keberhasilan dengan menjalankan
az provider show -n Microsoft.HybridConnectivity
, verifikasi bahwaregistrationState
diatur keRegistered
- Mulai ulang agen hibrid di server yang diaktifkan Arc
Tidak dapat tersambung setelah memperbarui alat CLI dan agen Arc
Masalah ini terjadi ketika perintah yang diperbarui membuat konfigurasi layanan baru sebelum agen Arc diperbarui. Ini hanya akan berdampak pada versi Azure Arc yang lebih lama dari 1.31 saat memperbarui ke versi 1.31 atau yang lebih baru. Kesalahan:
Koneksi ditutup oleh port UNKNOWN 65535
Resolusi:
- Hapus konfigurasi layanan yang ada dan izinkan untuk dibuat ulang oleh perintah CLI pada koneksi berikutnya. Jalankan:
az rest --method delete --uri https://management.azure.com/subscriptions/<SUB_ID>/resourceGroups/<RG_NAME>/providers/Microsoft.HybridCompute/machines/<VM_NAME>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15
- Hapus konfigurasi layanan yang ada dan izinkan untuk dibuat ulang oleh perintah CLI pada koneksi berikutnya. Jalankan:
Menonaktifkan SSH ke server dengan dukungan Arc
Fungsionalitas ini dapat dinonaktifkan dengan menyelesaikan tindakan berikut:
Hapus port dan fungsionalitas SSH dari server berkemampuan Arc:
az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
Hapus titik akhir konektivitas default:
az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15