服务器 频道

在windows下使用OpenSSH(下)

  至此,你已经可以使用基本密钥的方法登录SSH服务器了,OpenSSH提供了下面这些基本命令行的命令:

ssh <user@servername> 
scp <localfilename> <user@servername>:<destinationdirectory> 
sftp <user@servername> 

  关于这些命令的详细使用方法我们会在另一篇文章晨介绍。

  除了客户端,OpienSSH套件还包含了服务器端,在安装程序结束后,服务器端还不能立刻使用,需要做一些进一步的设置。

  我们知道,OpenSSH原来是在Linux环境下使用的,它使用的用户密码和组的信息一般从服务器上的passwd和group文件中取得,而在windows环境下用户信息存放的位置显然是不同的。前面我们也提到OpenSSH for windows实际上是Cygwin套件里的OpenSSH软件包,因此,它在windows下的使用也要依赖于Cygwin建立起的Linux仿真环境。

  为了让OpenSSH的服务器正常运行,首先要在Cygwin仿真环境中建立/etc/passwd和/etc/group文件,在安装好OpenSSH for windows后,程序会将OpenSSH的安装目录做为Cygwin仿真系统根目录,并在/bin下存放各执行文件,在/etc下存放配置文件以符合Linux程序的环境要求。因此,在安装好程序后,我们需要打开命令行窗口,进入OpenSSH安装目录下的bin目录,运行如下命令生成所需的passwd和group文件。

  mkgroup -l >> ..\etc\group (local groups)
  mkgroup -d >> ..\etc\group (domain groups)
  mkpasswd -l [-u ] >> ..\etc\passwd (local users)
  mkpasswd -d [-u ] >> ..\etc\passwd (domain users)

  这样可以把域和本机的组与用户信息导入到Cygwin的帐户和组文件中去。

  然后运行如下命令启动OpenSSH服务。

  net start opensshd

  现在,你就可以在其它机器上利用SSH登录本机了。

  在windows系统下使用OpenSSH,需要注意下面这些问题:

  1、 StrictModes问题

  有时运行在windows系统上的OpenSSH服务器会无法识别登录系统使用的公钥(特别是在一些windows XP系统上),如果出现这样的问题,可以进行如下处理。

  将SSHD服务器的配置文件sshd.conf中的StrictModes选项设置为关闭即可以解决这个问题。

  2、 Windows路径问题

  在使用scp和sftp以及设置passwd文件中的用户登录目录里,我们都会遇到目录问题,我们知道linux的文件系统与windows的组织结构有很大差异,由于OpenSSH的使用环境主要是在Linux下,这些地方的路径模式也用的是Linux模式。在这些地方为了访问Cygwin虚拟根以外的目录,Cygwin提供了一种目录转换机制,在目录前加/cygdrive/DRIVELETTER/引用指定盘符的目录。这里DRIVELETTER是指目录所在的盘符,比如访问C盘的winnt\system32目录用以下目录引用/cygdrive/c/winnt/system32。它实际提供了一种两类目录结构之间的映射。

  在这里只是简单的介绍了一下windows环境下OpenSSH工具的使用,对于OpenSSH工具本身及其背景知识更详细的介绍我们将放在另一篇文章里。

0
相关文章