zoukankan      html  css  js  c++  java
  • Docker windows nano server容器中安装ssh实现远程登录管理

    【问题】

    • 使用ServiceMonitor.exe作为前台进程运行起来的容器无法attach。
    • 无法远程连接到运行中的容器中进行管理。

    【解决方法】

    在container中新建管理员用户,通过SSH实现远程连接。

    • 新建本地用户
    1 $Password = Read-Host -AsSecureString
    2 New-LocalUser "root" -Password $Password -FullName "Root User" -Description "For remote management"
    • 添加用户到Administrators组中
    1 Add-LocalGroupMember -Group "Administrators" -Member "root"
    • 设置用户密码永不过期(重要!)
    Set-LocalUser -Name "root" -AccountNeverExpires
    • 下载OpenSSH

    https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH

    • 解压,执行install-sshd.ps1

    •  安装完毕后,即可启动sshd服务
    1 Start-Service sshd
    • 设置sshd为默认开启的服务
    1 Set-Service sshd -StartupType Automatic
    • 添加防火墙规则,允许默认的ssh端口(22)通过*
    1 New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

    不过在nano server中貌似把防火墙的功能精简了。使用New-NetFirewallRule命令报错,找不到这个命令。所有的端口只要暴露了皆可访问,上面一步就可以省去了。

    •  最后,在启动container时暴露22端口。
    1 docker run --name mysqltest --hostname mysqltest1 --expose=3306 --expose=22 --network=mysqltest-transparent-network --ip="192.168.1.50" -d zwang3/mysql:v3 c:ServiceMonitor.exe mysql
    • 在远程通过ssh访问,需要指定 command为cmd或者powershell。
    1 ssh -l root 192.168.1.50 powershell
  • 相关阅读:
    【Vijos-P1512】SuperBrother打鼹鼠-二维树状数组
    HTTP::Request
    HTTP::Request
    LWP::UserAgent
    perl json模块
    perl json模块
    perl 处理perl返回的json
    perl 处理perl返回的json
    perl中 wx返回的json需要encode_utf8($d);
    perl中 wx返回的json需要encode_utf8($d);
  • 原文地址:https://www.cnblogs.com/flyelephant/p/docker-windows-nano-server-ssh-remote-login.html
Copyright © 2011-2022 走看看