windows下openssh server的配置

  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/。

你可能感兴趣的:(运维及自动化)