LAN下使用ssh管理windows电脑
部署运维8 分钟阅读13 次浏览
LAN下使用ssh管理windows电脑
方法一:密钥登录
在被控端上的操作
- 安装并启动 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*"
- 创建用于 SSH 登录的专用账户(可选)
# 创建用户
net user [被控端用户名] [被控端密码] /add
# 如果需要管理员权限则加这一行,否则跳过
net localgroup administrators [被控端用户名] /add
- 在被控端用户目录下创建公钥存放文件
# 切换到你的用户目录(或刚刚创建的用户名目录)
cd C:\Users\[你的用户名]
# 创建 .ssh 文件夹
New-Item -Path .\.ssh -ItemType Directory -Force
# 创建空的 authorized_keys 文件
New-Item -Path .\.ssh\authorized_keys -ItemType File -Force
在控制端上的操作
- 生成密钥对 在控制端上以普通用户打开 PowerShell,执行:
ssh-keygen -t ed25519
- 如果想要用同一个算法生成多对密钥,可以在生成密钥对的命令后面再加
-f ~\.ssh\[文件名] - 一路回车即可
- 生成的文件位于
C:\Users\[你的用户名]\.ssh\目录下:id_ed25519:私钥(自己保管,绝不外传)id_ed25519.pub:公钥(需要复制到虚拟机)
- 查看并复制公钥内容
cat ~\.ssh\id_ed25519.pub
选中输出的全部内容(以 ssh-ed25519 开头),复制到剪贴板。
回到被控端
- 将公钥写入 authorized_keys
# 注意:将下面命令中的 "粘贴公钥内容" 替换为你复制的公钥
Add-Content -Path .\.ssh\authorized_keys -Value "[粘贴公钥内容]"
- 设置文件权限
# 将下面的 "被控端用户名" 替换为实际的用户名
icacls .\.ssh /inheritance:r
icacls .\.ssh /grant "[被控端用户名]:F"
icacls .\.ssh\authorized_keys /inheritance:r
icacls .\.ssh\authorized_keys /grant "[被控端用户名]:F"
回到控制端
- 测试连接
ssh [被控端用户名]@[被控端IP地址]
例如:ssh sshuser@192.168.1.100
首次连接输入 yes 确认主机指纹,如果设置了密码短语则输入密码短语,即可登录。
方法二:账户密码登录
在被控端上的操作
- 安装并启动 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*"
- 创建用于 SSH 登录的专用账户
# 创建用户
net user [被控端用户名] [被控端密码] /add
# 如果需要管理员权限则执行这行
net localgroup administrators [被控端用户名] /add
- 启用密码登录 默认情况下,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
在控制端上的操作
- 测试密码登录 在物理机的 PowerShell 中执行:
ssh [被控端用户名]@[被控端IP地址]
例如:ssh [被控端用户名]@192.168.1.100
首次连接输入 yes 确认主机指纹,然后输入你设置的密码,即可登录。
#环境部署#Windows系统#AI智能体