通过生成自己的安全密钥,进一步扩展Microsoft在Windows 10中的OpenSSH实现。
图片来源:www.ghost580.com
OpenSSH的使用无处不在,通过网络安全访问客户端设备。 SSH的目的很简单:在两个端点之间安全地封装管理流量,在这种情况下使用服务器 - 客户端模型进行身份验证。
虽然可以启用SSH以使用连接到同一域的客户端(例如使用Active Directory凭据),但在尝试与网络交换机或路由器等设备进行通信时,这是不可能的,这些设备本身不是任何域基础结构的一部分。相反,这些设备和基于Linux的客户端使用公钥/私钥对来验证用户是否尝试连接到客户端并在提供远程访问之前执行身份验证。
在本文中,我们将使用此用例,因为它通常被认为是一种更安全的获取访问方法,它可以无缝地适用于Windows和非Windows设备。通过生成和管理SSH密钥对,IT将能够以安全的方式远程连接到客户端,同时确保每个用户的机密性和不可否认性,使用与个人Windows登录帐户绑定的唯一密钥对进行安全存储。
为PowerShell安装OpenSSH模块
1.使用管理员级帐户登录Windows计算机,然后使用管理员权限启动PowerShell。
2.输入以下cmdlet以安装OpenSSH模块。 如果这是第一次在设备上安装模块,系统可能会提示您下载并安装一些其他工具。 键入“Y”以允许安装工具。
Install-Module -Force OpenSSHUtils
3.接下来,输入cmdlet以启动ssh-agent服务,以安全地存储私有生成的SSH密钥。
Start-Service ssh-agent
4.最后,输入cmdlet以启动sshd服务,该服务将自动生成第一对主机密钥。
Start-Service sshd
注意:默认情况下,未安装OpenSSH Server应用程序,因此必须先安装它。 此外,ssh-agent服务设置为Disabled,必须在上面的cmdlet工作之前更改。 主机密钥存储在%HOMEDRIVE% ProgramData ssh目录中。
生成用户密钥对
1.在PowerShell中,将目录更改为存储SSH密钥的上面的路径,然后输入下面的cmdlet以生成密钥对。
SSH-凯基
2.为了生成一组唯一的密钥对并存储它们,系统将提示您提供存储密钥对的目录,或者您可以按Enter键选择提供的默认位置。
3.接下来,系统将提示您选择密码来加密密钥对。 虽然提供密码是可选的,但强烈建议输入密码,因为当使用密钥对建立远程连接时,它可以作为双因素身份验证的第二个目的。
4.一旦完成该过程,将在SHA256指纹旁边生成两个文件,并且该密钥的随机艺术图像将显示在屏幕上,并且应如下所示(图A):
图A.
安全地复制公钥
OpenSSH工具包括SCP和SFTP实用程序,可以使传输密钥完全安全。为了正确配置Windows客户端以通过SSH密钥进行身份验证,必须将公钥(.PUB)文件传输到客户端设备的.ssh目录并存储在authorized_keys文本文件中。
1.通过在PowerShell中执行以下命令开始此过程,以在用户的配置文件文件夹中创建.ssh目录。
ssh username@domain.com mkdir C: Users username .ssh
2.使用SCP实用程序,输入以下命令以将公钥从服务器安全地复制到客户端设备。
scp C: Users username .ssh id_rsa.pub username@domain.com:C: Users username .ssh authorized_keys
3.最后,通过输入以下命令修改服务器上authorized_keys文件的ACL。
ssh —% username@domain.com powershell -c $ConfirmPreference = 'None'; Repair-AuthorizedKeyPermission C:Usersusername.sshauthorized_keys