windows下c语言open(),在windows下使用OpenSSH(下)copy /b authorized_keys + ...

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提供了下面这些基本命令行的命令:

ssh

scp :

sftp

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值