All Products
Search
Document Center

:Use Cloud Assistant Agent to install OpenSSH on a Windows ECS instance

Last Updated:May 31, 2024

Cloud Assistant Agent is a program that runs Cloud Assistant commands on Elastic Compute Service (ECS) instances. This topic describes how to use Cloud Assistant Agent to install OpenSSH on an ECS instance that runs a Windows operating system.

Prerequisites

  • Cloud Assistant Agent is installed on the ECS instance on which you want to install OpenSSH. For more information, see Install Cloud Assistant Agent.

  • Rules are added to the security groups of the ECS instance to allow traffic on SSH port 22. For more information, see Add a security group rule.

    Note

    For information about the operating system versions that support Cloud Assistant Agent, see the Limits section of Overview of Cloud Assistant.

Procedure

  1. Log on to the ECS console.

  2. In the left-side navigation pane, choose Maintenance & Monitoring > Cloud Assistant.

  3. In the top navigation bar, select the region and resource group to which the resource belongs. 地域

  4. In the upper-right corner of the ECS Cloud Assistant page, click Create/Run Command.

  5. In the Create Command panel, configure the parameters described in the following table.

    Parameter

    Description

    Command Source

    Select Enter Command Content to create a command.

    Command Name

    Enter a name for the command.

    Execution Plan

    Select Immediate execution.

    Command Type

    Select a command type.

    For Windows ECS instances, select PowerShell.

    Command content

    Paste the following content to the code editor:

    $curDir = $PSScriptRoot
    Set-Location $curDir
    # Check the OS version
    $OSversion = [Environment]::OSVersion.Version
    if ($OSversion.Major -lt 6 -and $OSversion.Minor -lt 1) {
         throw "This scrip is not supported on Windows 2008 or lower"
    }
    $Arch =([Array](Get-WmiObject -Query "select AddressWidth from Win32_Processor"))[0].AddressWidth
    if ($Arch -ne "64") {
        throw "Only 64-bit system architecture is supported"
    }
    function Check-Env() {
        $srv_status = (Get-WmiObject -Class win32_service -Filter "name= 'sshd'").Status
        if ( $srv_status -match "OK") {
            Write-Host "system already installed opensshd"
            exit
        }
    }
    function Download-File($file_url = "{{sshd_download_url}}", $file_path = "C:\Programdata\OpenSSH-Win64.zip") {
        if (Test-Path $file_path) { return; }
        [System.Net.ServicePointManager]::SecurityProtocol=[System.Net.SecurityProtocolType]::Tls12
        Invoke-WebRequest -Uri $file_url  -OutFile $file_path -UseBasicParsing
        if (! $?) { throw "$file_url download to $file_path error" }
    }
    
    function Unzip-File($src_file = "C:\Programdata\OpenSSH-Win64.zip", $dst_file = "C:\Programdata") {
        Expand-Archive -Path $src_file -DestinationPath $dst_file 
        if (! $?) { throw "Unzip $src_file to $dst_file error, please check" }
    }
    function Install-Ssh() {
        powershell.exe -ExecutionPolicy Bypass -File C:\Programdata\OpenSSH-Win64\install-sshd.ps1
        if (! $?) {
            throw "Install openssh error, please check"
        }
        Start-Service sshd
        Set-Service -Name "sshd" -StartupType Automatic; Start-Service sshd
        if (! $?) {
            throw "set sshd enable auto start or start sshd error , please check"
        }
    }
    Check-Env
    Download-File
    Unzip-File
    Install-Ssh

    Use Parameters

    Turn on Use Parameters. Specify the sshd_download_url parameter. You can obtain the version of OpenSSH that you want to download and install from the OpenSSH official website. For example, set the sshd_download_url parameter to https://github.com/PowerShell/Win32-OpenSSH/releases/download/v9.5.0.0p1-Beta/OpenSSH-Win64.zip.

    Command Description

    Enter a description for the command. We recommend that you enter identifiable information, such as the purpose of the command, to facilitate management and maintenance.

    Username

    Specify a username that you want to use to run the command on ECS instances.

    For security purposes, we recommend that you run Cloud Assistant commands as a regular user based on the principle of least privilege. For more information, see Run Cloud Assistant commands as a regular user.

    Note

    By default, Cloud Assistant commands are run by the root user on Linux instances and by the system user on Windows instances.

    Execution Path

    Specify an execution path for the command. Different default execution paths are provided based on the operating system of instances on which the command is run.

    For Windows instances, the default execution path is the following directory in which the process of Cloud Assistant Agent resides: C:\ProgramData\aliyun\assist\$(version).

    Timeout

    Specify a timeout period for the command to run on instances. If a task that runs the command times out, Cloud Assistant forcefully stops the task process.

    Unit: seconds. Default value: 60. We recommend that you set this parameter to 300. You can change the value based on the network conditions.

    Select Instance

    Select the ECS instances on which you want to run the command.

    Select Managed Instances

    Select the managed instances on which you want to run the command.

    Note

    A managed instance is an instance that is not provided by Alibaba Cloud but is managed by Cloud Assistant. For more information, see Alibaba Cloud managed instances.

  6. Click Save to run the command.

  7. Install OpenSSH.

    1. Connect to the Windows instance by using Virtual Network Computing (VNC).

      For more information, see Connect to a Windows instance by using a password.

    2. Click the Dingtalk_20210510142550.jpg icon and select Windows PowerShell to start PowerShell.

    3. Run the following command to install OpenSSH:

      NETSTAT.EXE -ano

      The following figure shows a sample command output, which indicates that OpenSSH is installed and listens on port 22.

      1be53a98a94bf5f6be7418edb4cf669bd49b8810ac54fbc73d5340136041ca9aQzpcVXNlcnNcbGl4aWFuZ1xBcHBEYXRhXFJvYW1pbmdcRGluZ1RhbGtcMTM3MTc0NDY0X3YyXEltYWdlRmlsZXNcMTYyNDI1NzY5NDUxNl9GNUNEMDFFNC1CQThCLTQ1MTItODNFNC1EM0ZCR.png

  8. Use an SSH client to connect to the Windows instance.

    Note

    Use the current username and password of the Windows instance to log on to the instance.