我有一个UBUNTU 16.04盒子(我们称之为 EARTH )和一个Windows 2012 R2盒子(我们称之为 MARS )。使用Windows框中的以下命令( MARS ),我正在生成计划用于PS Remoting的自签名证书。
CMD1: $ Cert = New-SelfSignedCertificate -CertstoreLocation Cert:\ LocalMachine \ My -DnsName“ myHost”
CMD2: 出口证书-证书$证书-FilePath C:\ temp \ cert
在 MARS (Windows框)上,存在一个WSMAN侦听器,该侦听器使用刚刚创建的经过认证的自签名证书的指纹创建。
CMD3: New-Item -Path WSMan:\ LocalHost \ Listener-传输HTTPS -Address * -CertificateThumbPrint $ Cert.Thumbprint –Force
我正在尝试从 EARTH (UBUNTU框)到 MARS
发起PowerShell Remoting会话。有人知道如何将证书导入EARTH(UBUNTU服务器),以便Powershell可以将其用于远程会话吗?
PS会话的来源:EARTH,UBUNTU服务器
PS会话的目标:MARS,即用于生成证书的Windows 2012 R2框。
EARTH(UBUNTU服务器)正在运行PowerShell版本6.1 Preview.2
谢谢您的帮助!
答案 0 :(得分:0)
导出/导入证书cmdlet是此用例的目标。 至于Ubuntu,只需在Ubuntu上使用cmdline,请参阅Ubuntu论坛讨论:
在Ubuntu中:
https://askubuntu.com/questions/645818/how-to-install-certificates-for-command-line
或者直接从Ubuntu获得帮助信息。
安装证书
您可以安装密钥文件server.key和证书文件 通过运行运行server.crt或CA颁发的证书文件 在终端提示符处输入以下命令:
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
现在只需配置任何具有使用功能的应用程序 公钥加密,以使用证书和密钥文件。对于 例如,Apache可以提供HTTPS,Dovecot可以提供IMAPS和 POP3S等
https://help.ubuntu.com/lts/serverguide/certificates-and-security.html
MS已提供有关如何设置和使用它的逐步指南。具体而言,以下内容直接针对Ubuntu。这样可以进行远程处理,而无需使用您正在使用的其他证书步骤。
通过SSH进行PowerShell远程处理
在Windows计算机上安装
- 从GitHub安装最新的Windows PowerShell版本◦您可以通过查看以下内容来判断它是否具有SSH远程处理支持: New-PSSession的参数集
Get-Command New-PSSession -syntax
New-PSSession [-Name <string[]>] [-HostName <string>] [-UserName <string>] [-KeyPath <string>] [<CommonParameters>]
- 按照安装说明从GitHub安装最新的Win32 Open SSH版本
- 在安装Win32的位置上编辑sshd_config文件。打开SSH◦确保已启用密码身份验证 wordPasswordAuthentication是
◦添加PowerShell子系统条目
◾子系统powershell
PowerShell_Install_Path\powershell.exe -sshs -NoLogo -NoProfile
◦可以选择启用密钥身份验证
◾RSA认证是 ◾PubkeyAuthentication是4。重新启动sshd服务◦Restart-Servicesshd
在Linux(Ubuntu 14.04)计算机上的设置:
1。从GitHub安装最新的PowerShell for Linux构建◦您可以通过查看参数来判断它是否支持SSH远程处理 为New-PSSession设置
Get-Command New-PSSession-语法 New-PSSession [-名称] [-主机名] [-用户名] [-KeyPath] []
2。根据需要安装Ubuntu SSH◦sudo apt install openssh-client
sudo apt install openssh-server
3。在/ etc / ssh位置编辑sshd_config文件◦确保已启用密码身份验证 ◾PasswordAuthentication是
◦添加PowerShell子系统条目
◾子系统PowerShell powershell -sshs -NoLogo -NoProfile◦可以选择启用密钥身份验证
◾RSA认证是 ◾PubkeyAuthentication是4。重启sshd服务◦sudo服务ssh restart
PowerShell远程处理示例:
测试远程处理的最简单方法是仅在单个 机。在这里,我将创建返回到同一台计算机的远程会话 在Linux机器上。请注意,我正在使用PowerShell cmdlet 命令提示符,因此我们看到ssh的提示,要求验证主机 计算机以及密码提示。您可以在 Windows机器,以确保远程操作在那里然后远程进行 只需更改主机名即可在机器之间切换。
Linux到Linux
PS /home/TestUser> $session = New-PSSession -HostName UbuntuVM1 -UserName TestUser
The authenticity of host 'UbuntuVM1 (9.129.17.107)' cannot be established.
ECDSA key fingerprint is SHA256:2kCbnhT2dUE6WCGgVJ8Hyfu1z2wE4lifaJXLO7QJy0Y.
Are you sure you want to continue connecting (yes/no)?
TestUser@UbuntuVM1s password:
PS /home/TestUser> $session
Id Name ComputerName ComputerType State ConfigurationName Availability
-- ---- ------------ ------------ ----- ----------------- ------------
1 SSH1 UbuntuVM1 RemoteMachine Opened DefaultShell Available