PowerShell Core の PowerShell Remoting over SSH ではなくて、Windows PowerShell 5.1 からWS-Man プロトコルで。
せっかくなので、Windows 10 の Docker Desktop の LCOW(Experimental)環境で実行した ubuntu:latest(18.04 LTS)の Linux コンテナー環境で試してみる。試し終わったら自動破棄(コンテナーだと汚さず試せる)。
docker run -it --rm ubuntu:latest bash
Linux コンテナーにて...
ubuntu official イメージにとりあえず wget と cron を追加。(Linux コンテナーは root 権限で接続されるけど、通常の Linux 環境の場合は sudo apt-get ... や sudo dkpg ... で)
# apt-get update
# apt-get install -y wget
# apt-get install -y cron
PowerShell Core 6 をインストール。
# wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
# dpkg -i ./packages-microsoft-prod.deb
# apt-get update
# apt-get install -y powershell
OMI(Open Management Infrastructure) Server をインストール。
# wget https://github.com/microsoft/omi/releases/download/v1.6.0/omi-1.6.0-0.ssl_110.ulinux.x64.deb
# dpkg -i ./omi-1.6.0-0.ssl_110.ulinux.x64.deb
RSRP(PowerShell Remoting Protocol) のサポートをインストール。
# wget https://github.com/PowerShell/psl-omi-provider/releases/download/v1.4.1-28/psrp-1.4.1-28.universal.x64.deb
# dpkg -i ./psrp-1.4.1-28.universal.x64.deb
ユーザー作成。Linux コンテナーのユーザーはパスワードなし root だから使えないので。
# useradd -m demouser
# passwd demouser
NAT IP アドレス(X.X.X.X)を確認。
# hostname -I
(またはホスト側で docker inspect コンテナーID -f="{{。NetworkSettings.Networks.nat.IPAddress}}"で確認)
Windows にて...
コマンドプロンプト(管理者)で WinRM と TrustedHosts を構成(未構成の場合)。
C:\Windows\System32> winrm qc
C:\Windows\System32> winrm set winrm/config/Client @{TrustedHosts="*"}
Windows PowerShell (管理者権限不要)から Enter-PSSession (または Invoke-Command)で接続。
PS C:\> $cred = Get-Credential (demouser の資格情報を入力)
PS C:\> $o = New-PSSessionOption -SkipCACheck -SkipRevocationCheck -SkipCNCheck
PS C:\> Enter-PSSession -ComputerName X.X.X.X -Credential $cred -Authentication basic -UseSSL -SessionOption $o
[X.X.X.X]: PS /home/demouser>
大成功!だからといって、Linux に PowerShell Remoting の必要性が思いつかないけど。
参考:
Linux への PowerShell Core のインストール(docs.microsoft.com)
https://docs.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6
Open Management Infrastructure (GitHub)
https://github.com/microsoft/omi
PSRP Linux support library (GitHub)
https://github.com/PowerShell/psl-omi-provider
PowerShell remoting between Windows and Linux (4sysops)
https://4sysops.com/archives/powershell-remoting-between-windows-and-linux/
ところで、Linux コンテナーで試したのは、PowerShell Direct(→ メモ: PowerShell Direct to Windows Server Core Container ) で接続できるかどうか試したかったから。
できないと思ってたけど、やっぱりダメでした。
PowerShell Direct が Linux ゲストに使えないのは、ゲストサービス(統合サービス)の Hyper-V PowerShell Direct Service(Windows ゲストの場合は vmicvmsession)が無いから。Linux ゲスト用は not available。https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/reference/integration-services
返信削除