Windows2019配置OpenSSH
Windows2019配置OpenSSH服务
适用于 Windows Server 2019、Windows 10、Windows Server 2022
OpenSSH 是一款用于远程登录的连接工具,它使用 SSH 协议。 它会加密客户端与服务器之间的所有流量,从而遏止窃听、连接劫持和其他攻击。
OpenSSH 可用于将安装了 OpenSSH 客户端的 Window 10(版本 1809 及更高版本)或 Windows Server 2019 设备连接到那些安装了 OpenSSH 服务器的设备。
使用 PowerShell 安装 OpenSSH
若要使用 PowerShell 安装 OpenSSH,请先以管理员身份运行 PowerShell。 为了确保 OpenSSH 可用,请运行以下命令:
PS C:\Users\Administrator> Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
#如果两者均尚未安装,则此操作应返回以下输出: Name : OpenSSH.Client~~~~0.0.1.0 State : Installed Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent PS C:\Users\Administrator>
然后,根据需要安装服务器或客户端组件:
# Install the OpenSSH Client Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 # Install the OpenSSH Server Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
两者应该都会返回以下输出,这里只安装客户端:
PS C:\Users\Administrator> Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Path : Online : True RestartNeeded : False
连接到 OpenSSH 服务器
安装后,可从使用 PowerShell 安装了 OpenSSH 客户端的 Windows 10 或 Windows Server 2019 设备连接到 OpenSSH 服务器,如下所示。 请务必以管理员身份运行 PowerShell:
PS C:\Users\Administrator> ssh root@10.0.1.100 The authenticity of host '10.0.1.100 (10.0.1.100)' can't be established. ECDSA key fingerprint is SHA256:hiTIN0dB0wE3b2XlrT5akmGi/vuDqH5ttGv/OFNh86A. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.1.100' (ECDSA) to the list of known hosts. root@10.0.1.100's password: Last login: Fri Feb 21 13:32:53 2025 from 10.0.242.231 [root@localhost~]#
注意事项
- 如果使用 SSH 密码进行连接,终端会提示输入密码。建议设置 SSH 密钥以避免每次输入密码
第一步:打开powershell生成 SSH 密钥对
运行以下命令生成 SSH 密钥对(默认生成 RSA 密钥,默认大小为 2048 位):
PS C:\Users\Administrator> ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa. Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub. The key fingerprint is: SHA256:pB1iNjLbZtwtpyO9C/atL3RR7xQbzQS4Qr9Rt5QUUD4 administrator@nbu-jxgd-vem The key's randomart image is: +---[RSA 2048]----+ | o=O+| | . o =o+| | o = o. o +.E.| | O B oo + +..| | . * S oo = | | o ..+. . . | | +.+. | | . +.+ | | ==o | +----[SHA256]-----+ PS C:\Users\Administrator>
注意:在提示中,按回车键接受默认文件路径(通常为 C:\Users\<你的用户名>\.ssh\id_rsa)。可以选择输入一个密码短语(passphrase),或者直接按回车以不使用密码短语。
第二步:将公钥复制到 Linux 主机
-
使用以下命令将公钥(
id_rsa.pub)复制到 Linux 主机上。替换user@linux_host为你的 Linux 用户名和主机名/IP 地址:
ssh-copy-id user@linux_host
-
这个命令会提示你输入 Linux 用户的密码以进行身份验证。
-
如果
ssh-copy-id不可用,可以手动将公钥复制到 Linux 主机。你可以通过以下步骤实现:以文本方式查看公钥内容:
PS C:\Users\Administrator\.ssh> Get-Content C:\Users\Administrator\.ssh\id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDd5+m3Od+f9bc1UMPym2zSJBYQrJpszfLV8QkxNvZSMQKjAXC/cBxiDJsuYwzTFTJIc7rHwX3vlf0lLJFW+H8gUEdtt8p64ic1ETg7/v2VBs/L9GkhCOZKafgHqjzGc31d58dNARL8VG7E1gQF3B3vOJIZPwcR/7qag09dQ7JRLvWhW82mKAVmqhfSQSYb6cO11vVdhWQhV3FHqNaw/Fx6pwEy4ksWb7b6N9mtOh90Rv8sPDj2zrgT54CqmQM6RJkiAVaZPS C:\Users\Administrator\.ssh> YoaokiKr4PjdiQHygyqVeicQSIIxuwaES4F0lzf4lK2hqMlV administrator@nbu-jxgd-vem PS C:\Users\Administrator\.ssh>
登录后,打开或创建 ~/.ssh/authorized_keys 文件并将公钥内容粘贴进去:
echo "你的公钥内容" >> ~/.ssh/authorized_keys
确保文件权限正确,你可以运行以下命令:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
第三步:测试无密码登录
-
ssh root@IP ;退出 Linux 主机的 SSH 会话。
- 在 PowerShell 中再次尝试连接,如果配置成功,此时应该不再需要输入密码即可登录到 Linux 主机。
PowerShell 命令来删除 D:\Scripts\ 目录中 3 天之前的以 .zip 结尾的文件:
Get-ChildItem "D:\Scripts\" -Filter "*.zip" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } | Remove-Item 解释: Get-ChildItem "D:\Scripts\" -Filter "*.zip":获取 D:\Scripts\ 目录中所有以 .zip 结尾的文件。 Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) }:筛选出最后写入时间早于 3 天的文件。 Remove-Item:删除筛选出的文件。
参考文档:https://www.cnblogs.com/wandereryjh/p/18494083

浙公网安备 33010602011771号