ssh for win 安装杂记

安装配置见后文。比较奇怪的是我导入用户到passwd的时候是建立了个root用户,但是配置完成后我删除了这个root用户没有其他影响。

ps:其实删除还是有影响的,当删除了以后sftp或者ssh上来是以未知用户的身份运行的,这样会导致无法写文件等权限问题,sftp上表现为无法上传。重新建立用户导入后pass。

最搞笑的是ln建立的链接在sftp上无法识别,最后发现直接在winscp上当前目录上建立个
Link 指向/*****/cygdrive/d 就可以双击来过去了,汗一下,看下link文件发现是里面的格式不同,或许,sftp支持的link格式比较干净些。总算搞定。

详细的配置见后文
原文link:http://www.pckw.com/Server/ServerSoftware/200511/Server_20051111164839.html

OpenSSH for windows安装与设置

  OpenSSH在windows下的安装与设置与在Linux下有所不同,本文重点对这些差异做一点说明。首先,我们简单的介绍一下整个安装过程。

  OpenSSH的安装非常简单,首先在这里(http://sshwindows.sourceforge.net/)下载它的安装包,按照提示操作即可。

  OpenSSH的安装可以分为客户端和服务器端两部分,你可以在安装向导中选择只安装某一部分。在全部安装的情况下,安装向导完成后,客户端就已经可用了。

  不过为了使用密钥进行服务器登录,安装完成后的第一件事就是生成自己的密钥对。打开一个命令行窗口,如果你准备生成运行SSH1的服务器的密匙,输入以下命令:

  ssh-keygen -t keytype

  如果服务器运行的是SSH2,则生成密钥时需要加-d选项。命令如下:

  ssh-keygen -d -t keytype

  这里keytype可以是dsa, rsa,或rsa1,按照提示选择密钥存放的地点和文件名,密钥对默认为存储在windows个人设置目录下的.ssh目录下。在创建密钥的过程中,会询 问密钥保护密码,如果你不需要密码,可以直接输入回车键跳过。但这样任何取得你私钥的人都可以利用它以你的身份在服务器上登录。

  为了使用生成的密钥进行登录,接下来需要做的事就是把你的公钥上传到需要登录的服务器。无论你用哪种方法生成的密钥,都会生成一对文件,其中公 钥以.pub结尾。将.ssh目录中的公钥上传到服务器中,然后在服务器(假定是Linux服务器)上进入登录帐户的家目录,输入下面的命令:

  cat publickeyname >> authorized_keys

  publickeyname是你的公钥文件的文件名。如果它不在当前目录里,还要加上到文件的引用路径。

  如果用SSH登录的服务器是一台windows服务器,可以使用以下命令:

  copy /b authorized_keys + publickeyname authorized_keys

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

 

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

  除了客户端,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。它实际提供了一种两类目录结构之间的映射。  

附件: sshd_config (2.73 K, 下载次数:82)

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):