[英]PowerShell 6.* Remoting using SSL certificate and UBUNTU
我有一个UBUNTU 16.04盒子(我们称之为EARTH )和Windows 2012 R2盒子(我们称之为MARS )。 使用Windows框中的以下命令( MARS ),我正在生成一个自签名证书,计划将其用于PS Remoting。
CMD1: $ Cert = New-SelfSignedCertificate -CertstoreLocation Cert:\\ LocalMachine \\ My -DnsName“ myHost”
CMD2:导出证书-证书$ Cert -FilePath C:\\ temp \\ cert
在MARS (Windows框)上,存在一个WSMAN侦听器,该侦听器使用刚刚创建的经过认证的自签名证书的指纹创建。
CMD3: New-Item -Path WSMan:\\ LocalHost \\ Listener -Transport HTTPS -Address * -CertificateThumbPrint $ Cert.Thumbprint –Force
我正在尝试启动从EARTH (UBUNTU框)到MARS的PowerShell远程处理会话
有谁知道如何将证书导入EARTH(UBUNTU服务器),以便Powershell可以将其用于远程会话?
PS会话的来源:EARTH,UBUNTU服务器
PS会话的目标:MARS,用于生成证书的Windows 2012 R2框。
EARTH(UBUNTU服务器)正在运行PowerShell版本6.1 Preview.2
提前谢谢你的帮助!
导出/导入证书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。 这样就可以进行远程处理,而无需使用您正在使用的其他证书步骤。
PowerShell通过SSH进行远程处理
在Windows机器上安装
- 从GitHub安装最新的Windows PowerShell版本◦您可以通过查看New-PSSession的参数集来判断它是否支持SSH远程处理
Get-Command New-PSSession -syntax
New-PSSession [-Name <string[]>] [-HostName <string>] [-UserName <string>] [-KeyPath <string>] [<CommonParameters>]
- 使用安装说明从GitHub安装最新的Win32 Open SSH构建
- 在安装Win32的位置上编辑sshd_config文件。打开SSH◦确保启用了密码身份验证◾PasswordAuthentication是
添加PowerShell子系统条目
◾子系统PowerShell
PowerShell_Install_Path\powershell.exe -sshs -NoLogo -NoProfile
◦可选地启用密钥认证
◾RSAAuthentication是◾PubkeyAuthentication是4.重新启动sshd服务◦Restart-Servicesshd
在Linux(Ubuntu 14.04)机器上的设置:
1.从GitHub安装最新的PowerShell for Linux构建◦您可以通过查看New-PSSession的参数集来判断它是否支持SSH远程处理
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◦可选地启用密钥认证
◾RSAAuthentication是◾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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.