普拉娜的手账PLANA'S NOTEBOOK
返回文章列表

LAN下使用ssh管理windows电脑

部署运维8 分钟阅读13 次浏览

LAN下使用ssh管理windows电脑

方法一:密钥登录

在被控端上的操作

  1. 安装并启动 OpenSSH 服务器,以管理员身份打开 PowerShell,执行:
# 安装 SSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# 启动服务并设为开机自启
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
# 确认防火墙放行端口 22
Get-NetFirewallRule -DisplayName "*SSH*"
  1. 创建用于 SSH 登录的专用账户(可选)
# 创建用户
net user [被控端用户名] [被控端密码] /add
# 如果需要管理员权限则加这一行,否则跳过
net localgroup administrators [被控端用户名] /add
  1. 在被控端用户目录下创建公钥存放文件
# 切换到你的用户目录(或刚刚创建的用户名目录)
cd C:\Users\[你的用户名]
# 创建 .ssh 文件夹
New-Item -Path .\.ssh -ItemType Directory -Force
# 创建空的 authorized_keys 文件
New-Item -Path .\.ssh\authorized_keys -ItemType File -Force

在控制端上的操作

  1. 生成密钥对 在控制端上以普通用户打开 PowerShell,执行:
ssh-keygen -t ed25519
  • 如果想要用同一个算法生成多对密钥,可以在生成密钥对的命令后面再加 -f ~\.ssh\[文件名]
  • 一路回车即可
  • 生成的文件位于 C:\Users\[你的用户名]\.ssh\ 目录下:
    • id_ed25519:私钥(自己保管,绝不外传)
    • id_ed25519.pub:公钥(需要复制到虚拟机)
  1. 查看并复制公钥内容
cat ~\.ssh\id_ed25519.pub

选中输出的全部内容(以 ssh-ed25519 开头),复制到剪贴板。

回到被控端

  1. 将公钥写入 authorized_keys
# 注意:将下面命令中的 "粘贴公钥内容" 替换为你复制的公钥
Add-Content -Path .\.ssh\authorized_keys -Value "[粘贴公钥内容]"
  1. 设置文件权限
# 将下面的 "被控端用户名" 替换为实际的用户名
icacls .\.ssh /inheritance:r
icacls .\.ssh /grant "[被控端用户名]:F"
icacls .\.ssh\authorized_keys /inheritance:r
icacls .\.ssh\authorized_keys /grant "[被控端用户名]:F"

回到控制端

  1. 测试连接
ssh [被控端用户名]@[被控端IP地址]

例如:ssh sshuser@192.168.1.100

首次连接输入 yes 确认主机指纹,如果设置了密码短语则输入密码短语,即可登录。


方法二:账户密码登录

在被控端上的操作

  1. 安装并启动 OpenSSH 服务器 以管理员身份打开 PowerShell,执行:
# 安装 SSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# 启动服务并设为开机自启
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
# 确认防火墙放行端口 22
Get-NetFirewallRule -DisplayName "*SSH*"
  1. 创建用于 SSH 登录的专用账户
# 创建用户
net user [被控端用户名] [被控端密码] /add
# 如果需要管理员权限则执行这行
net localgroup administrators [被控端用户名] /add
  1. 启用密码登录 默认情况下,Windows OpenSSH 服务器是允许密码登录的。如果不确定,可以检查配置文件:
# 查看配置文件内容
Get-Content C:\ProgramData\ssh\sshd_config | Select-String "PasswordAuthentication"

如果输出为 PasswordAuthentication no,则需要改为 yes 并重启服务:

# 编辑配置文件(用记事本打开)
notepad C:\ProgramData\ssh\sshd_config
# 将 PasswordAuthentication no 改为 PasswordAuthentication yes,保存后执行:
Restart-Service sshd

在控制端上的操作

  1. 测试密码登录 在物理机的 PowerShell 中执行:
ssh [被控端用户名]@[被控端IP地址]

例如:ssh [被控端用户名]@192.168.1.100

首次连接输入 yes 确认主机指纹,然后输入你设置的密码,即可登录。

#环境部署#Windows系统#AI智能体