放逐忧伤

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用Cygwin通过ssh命令行来访问Windows7

banner

  你习惯用Linux/Unix并且希望通过SSH来访问装有Windows7的机器么?Cygwin提供了这项功能,它能让你在你所熟悉的环境中通过简单的步骤实现这一点。

  这里我们假设你已经安装并配置好了Cygwin。如果没有,可以参考这篇文章如何在Windows中通过Cygwin来使用Linux命令行

安装OpenSSH

  这里我们会用到OpenSSH,如果你没有安装,可以找到Cygwin中的Setup.exe文件再运行。

17-open setup

  安装Cygwin的过程中,可以使用默认设置。在安装包选项页面,搜索“open”,查看"Net"菜单。

  

18-install openssh

  你会看到一个叫“openssh”的安装包。点击“New”这一列,它会提示“Skip”直到你在“Bin?”下面看到X出现。如果你被弄晕了可以返回到上一个页面再重新拿开始。点击“Next”完成接下来的步骤,就像刚才安装Cygwin一样。

在Cygwin里配置OpenSSH

  

  和大多数Linux应用不同的是,OpenSSH在正常运行之前不会自动配置。这里需要进行一些简单的操作。首先,在Cygwin快捷方式上右键,然后点击“以管理员权限运行”:

00-run as admin

  这样可以保证我们有合理的权限来进行任意操作。你会看到一个空的Cygwin窗口出现。

01-cygwin window

输入下面的命令:

ssh-host-config

02-ssh-host-config

  

  你将会看到这些脚本生成一些默认文件,然后会是否打开“权限分离”功能。在其他系统里安装OpenSSH的时候默认是打开的,所以你可以直接输入“yes”。

03-priv sep

  它会提示你创建一个特殊权限账户,选择“yes”脚本会继续运行。

04-new acct

  接下来还会询问你是否将sshd作为服务来运行,这样的话不论Cygwin当前是否在运行你都可以访问到SSH,这正是我们需要的功能。选择“yes”继续。

05-sshd as service

  下一步会要求你为这个守护进程输入一个值,可以输入:

ntsec

06-daemon ntsec

  你会看到脚本在系统里为你提供一些信息,然后要求你创建一个默认名为“cyg_server“的优先账户,当提示你是否要使用别的名称的时候,可以输入“no”,因为默认名也很好用,如果你真不喜欢的话也可以修改。

07-priv acct cyg_server

  

  当然,你还需要为这个账户设置密码。

08-password

  Cygwin将会以文本的方式把你的密码显示出来,请确保你在安装的环境下输入密码。你还会看到其他一些信息,如果一切正常你会得到成功完成的提示。

09-fin host config

  你可以重启cygwin或者输入下面的命令来重新启动sshd服务:

net start sshd

10-net start sshd

  现在你可以输入“exit”来关闭Cygwin。

SSH的用户配置

  下一步,我们将会为你的用户账户创建合适的SSH关键内容。

ssh-user-config

11-ssh-user-config

  它会询问你是否为你的账户创建特定的关键内容,根据你的需要作出选择。我会对第一个提示选择“no”,第二个提示“yes”。

12-passphrase

  SSH2安全性会更高,所以在这里我会推荐你使用它。输入密码之后,它会询问你是否使用ID来访问你的电脑,输入“yes”。

13-use this id

  下一步,它会要求你创建SSH2 DSA ID文件,如果你不想用密码来访问的话。这一步我输入的是“no”。

14-no to dsa

  就这么简单!你已经完成了所有的配置。如果你想快速测试一下你的配置,可以在Cygwin窗口命令行里输入:

ssh –v localhost

15-test

  选项-v表示进程运行的所有细节都会显示出来。它会询问你是否继续连接,输入“yes”然后根据提示输入密码。记住,当你输入用户名,它对大小写是敏感的。

16-exit

  如果一切正常,你将会看到正常的bash命令行提示。

一些小提示

  如果你在配置过程中觉得束手无策,一定要确保要使用管理员权限来运行程序。如果你用普通用户配置主机的时候看到一些古怪的提示,一定要保证你是用管理员权限来运行Cygwin。当你退出的时候,会提示你是否继续运行工作任务,你可以输入“no”来结束它们。

  最后,如果你测试从其他电脑访问SSH的时候出现错误提示,确保防火墙没有阻止访问端口22(如果是使用SFTP对应的端口是23)。


  如果你想熟练使用shell并通过SSH/SFTP来访问你的Windows 7系统,这的确是一个不错的方法。如果你愿意的话,在Cygwin上还可以将Windows的硬盘分区挂在到“/cygdrive/driveletter”。

posted on 2012-05-07 14:06  放逐忧伤  阅读(1278)  评论(0编辑  收藏  举报