windows下openssh server的配置

本文详细介绍了如何在Windows环境下安装和配置OpenSSH,包括下载、配置、用户及组管理、密钥生成、服务启停等关键步骤,并提供了基于密钥认证的访问配置流程。
  1. 下载
    http://www.mls-software.com/opensshd.html

  2. 配置

 第一、打开一个ms-dos终端,进入openssh/bin目录。
 第二、将计算机上的组导入group文件中。这里分两种情况,第一种是本地,第二种是在域中。分别运行-l和-d参数。如果想将两种组都导入,可以先运行-l的参数再运行-d参数的命令。

mkgroup -l >> ..\etc\group       这是加入本地组的命令
mkgroup -d >> ..\etc\group       这是加入域组的命令

 第三、 将计算机的用户与其密码导入passwd文件中。与上面的组一样,也是分本地和域两种情况。如果没有该文件或没有导入用户的信息。作为server的话,将不能被登陆。

mkpasswd -l [-u <username>] >> ..\etc\passwd       这是加入本地用户的命令
mkpasswd -d [-u <username>] >> ..\etc\passwd       这是加入域用户的命令

如果计算机没有域,只要运行两条命令就可以了(注意我是在openssh/bin目录下运行的):
mkgroup -l >> ..\etc\group         
mkpasswd -l [-u <username>] >> ..\etc\passwd

举例新建了个root管理员用户,密码随便,运行
mkpasswd -l -u root >> ..\etc\passwd
就可以了,用ssh工具就可以连接。
注意:用户必须隶属于Administrators组。如果是域用户,用户名前要加域前缀,如下:YNCLEITAO10是域前缀,bee是用户名
YNCLEITAO10+bee
对应登陆命令 ssh YNCLEITAO10+bee@localhost

另,查看windows账号的命令可参考如下:
whoami 当前登陆账号
net localgroup administrators 查看管理组的成员
  1. 启动opensshd服务
   net start opensshd 
  1. 停止opensshd服务
   net stop opensshd 
  1. 设置基于密钥认证的方式访问
配置OpenSSH for Windows为密钥认证的步骤:
----------------------------------------------------------
1). 创建一个Windows用户ssh专用来SSH远程登陆。
可以在本地安全策略中设置禁止ssh本地登陆,不过这样以来单机调试就不方便了。
----------------------------------------------------------
2). 生成用户信息。这里是生成了所有用户的信息,当然只指定用户ssh也行
.\bin\mkgroup -l >> .\etc\group
.\bin\mkgroup -d >> .\etc\group
.\bin\mkpasswd -l >> .\etc\passwd
.\bin\mkpasswd -d >> .\etc\passwd
----------------------------------------------------------
3). 生成用户ssh的home目录
mkdir home
cd home
mkdir ssh
cd ssh
mkdir .ssh
----------------------------------------------------------
4). 修改cygwin环境默认的home目录
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]
"native"="C:\\Program Files\\OpenSSH\\home"
"flags"=dword:0000000a
----------------------------------------------------------
5). 生成密钥
cd bin
mkdir keys
ssh-keygen -t rsa -b 2048 -f keys\rsa2048 -C "This is passphrase hint" -N "This is passphrase"
mkdir keys\.ssh
cat rsa2048.pub > keys\.ssh\authorized_keys
----------------------------------------------------------
6). 将上面生成私转为SSH客户端可使用格式,这里用PuTTY,可用PuTTYgen转为PuTTY用的PPK格式
----------------------------------------------------------
7). 将OpenSSH设置为只接受密钥认证。
这里额外开了sftp服务。另外,StrictModes no选项将告诉OpenSSH不检查用户ssh的home目录的权限设置
Protocol 2
Port 22
HostKey /etc/ssh_host_rsa_key
PermitRootLogin no
PermitEmptyPasswords no
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#IgnoreUserKnownHosts yes
PasswordAuthentication no
UsePAM no
UsePrivilegeSeparation no
MaxStartups 10:30:60
Subsystem sftp /usr/sbin/sftp-server
----------------------------------------------------------
8). 设置路由器NAT和软件防火墙
NAT设置了映射22号端口的TCP包。
软件防火墙设置允许C:\Program Files\OpenSSH\usr\sbin\sshd.exe侦听TCP port 22。
----------------------------------------------------------
9). 基本上差不多了,要启用或停止OpenSSH服务可
net start opensshd
net stop opensshd
在services.msc里启用或停止也可
注意cygwin环境下将Windows各磁盘映射为/cygdrive/。
### 安装 OpenSSH 服务器组件 Windows Server 自 2019 版本起,已经支持 OpenSSH 作为可选功能安装。可以通过以下步骤进行安装: 1. 打开 PowerShell 以管理员身份运行。 2. 查看 OpenSSH 服务器是否可用: ```powershell Get-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 ``` 3. 安装 OpenSSH 服务器: ```powershell Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 ``` 安装完成后,OpenSSH 服务将自动安装并设置为手动启动[^2]。 ### 启动 OpenSSH 服务 安装完成后,需要启动 OpenSSH 服务并设置其为自动启动: 1. 启动服务: ```powershell Start-Service sshd ``` 2. 设置开机自启: ```powershell Set-Service -Name sshd -StartupType Automatic ``` 确保服务状态为“正在运行”,以便远程客户端可以连接到服务器[^2]。 ### 配置防火墙规则 为了允许远程客户端通过 SSH 连接到服务器,需要在防火墙中创建入站规则允许 TCP 端口 22: 1. 打开 PowerShell 以管理员身份运行。 2. 创建防火墙规则: ```powershell New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 ``` 该规则将确保 SSH 流量可以顺利通过防火墙[^3]。 ### 配置 SSH 服务选项 OpenSSH配置文件位于 `C:\ProgramData\ssh\sshd_config`。可以通过编辑此文件来调整 SSH 服务的行为。例如,可以更改默认端口、禁用密码登录、启用密钥认证等。 常见的配置选项包括: - `Port 22`:指定 SSH 服务监听的端口号。 - `PasswordAuthentication no`:禁用密码登录,仅允许密钥认证。 - `PermitRootLogin no`:禁止 root 用户直接登录。 修改配置后,需要重启 SSH 服务以使更改生效: ```powershell Restart-Service sshd ``` ### 用户权限管理 默认情况下,只有管理员组的用户可以通过 SSH 登录。如果希望普通用户也能登录,可以在 `sshd_config` 文件中添加以下行: ```plaintext Match Group sshusers PasswordAuthentication yes ``` 然后创建一个名为 `sshusers` 的用户组,并将需要允许登录的用户添加到该组中。 ### 测试 SSH 连接 在完成上述配置后,可以通过 SSH 客户端测试连接。例如,在另一台机器上使用以下命令进行连接: ```bash ssh username@server_ip ``` 如果一切正常,应该能够成功登录到 Windows Server,并看到命令行提示符。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值