终于研究出 Cygwin SSHD 服务不乱码的设置方式,今天终于把 BitVise WINSSHD 换掉!版权无忧,速度至上。

服务端

  1. Cygwin-SETUP 先装 NET 下面的 OpenSSH。

  2. 打开 cygwin-shell 执行 ssh-host-config

  3. 按以下选项配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
Query: Should StrictModes be used? (yes/no)** yes **
# ntfs 分区格式的应开启,ssh密钥方式登录将会被限定在用户主目录下的.ssh。

Query: Should privilege separation be used? (yes/no) **yes **
#权限隔离,比较安全

Query: new local account 'sshd'? (yes/no) **yes **
# 这个不太清楚,估计是用来测试是否能创建帐号的

Query: Do you want to install sshd as a service?
# 当然是yes

Query: (Say "no" if it is already installed as a service) (yes/no) **yes**
#将 sshd 加入服务,这样就会自启动

Query: Enter the value of CYGWIN for the daemon: [] **ntsec tty**
#这里应该是设置认证策略

Info: This script plans to use 'cyg_server'.
Info: 'cyg_server' will only be used by registered services.
Query: Do you want to use a different name? (yes/no) **no**
#创建sshd进程的身份,默认的用户名就可以了。然后会提示给这个帐号输入密码
  1. 右击电脑,管理,添加一个系统用户如 foobar,注意用户组必须是 Administrators 的。才能登录系统。

  2. 回到 cygwin-shell 打以下命令,将当前用户和用户组装入 cygwin 。

1
2
mkpasswd -l > /etc/passwd      #将当前系统所有用户导入到 cygwin
mkgroup -l > /etc/group      #将当前系统所有用户组导入到 cygwin
  1. 执行 net start sshd   #启动系统 sshd 服务开始接收请求。

本机端

  1. 打开本机的 cygwin 执行 ssh [email protected]  #server.com 指代Server地址

  2. 输入密码登录成功,需要先在~/.bash_profile 追加一行 :export LANG=C.GBK 。因为很多 windows 本身的 cmd 程序输出是GBK编码的。这样设置之后才能正常输入和输出中文。设置之后要重新登录才会生效。当然在 shell 里面执行一下也可以即时生效