使用Cygwin通过ssh命令行来访问Windows 7
你习惯用Linux/Unix并且希望通过SSH来访问装有Windows7的机器么?Cygwin提供了这项功能,它能让你在你所熟悉的环境中通过简单的步骤实现这一点。
这里我们假设你已经安装并配置好了Cygwin。如果没有,可以参考这篇文章如何在Windows中通过Cygwin来使用Linux命令行 。
安装OpenSSH
这里我们会用到OpenSSH,如果你没有安装,可以找到Cygwin中的Setup.exe文件再运行。
安装Cygwin的过程中,可以使用默认设置。在安装包选项页面,搜索“open”,查看"Net"菜单。
你会看到一个叫“openssh”的安装包。点击“New”这一列,它会提示“Skip”直到你在“Bin?”下面看到X出现。如果你被弄晕了可以返回到上一个页面再重新拿开始。点击“Next”完成接下来的步骤,就像刚才安装Cygwin一样。
在Cygwin里配置OpenSSH
和大多数Linux应用不同的是,OpenSSH在正常运行之前不会自动配置。这里需要进行一些简单的操作。首先,在Cygwin快捷方式上右键,然后点击“以管理员权限运行”:
这样可以保证我们有合理的权限来进行任意操作。你会看到一个空的Cygwin窗口出现。
输入下面的命令:
ssh-host-config
你将会看到这些脚本生成一些默认文件,然后会是否打开“权限分离”功能。在其他系统里安装OpenSSH的时候默认是打开的,所以你可以直接输入“yes”。
它会提示你创建一个特殊权限账户,选择“yes”脚本会继续运行。
接下来还会询问你是否将sshd作为服务来运行,这样的话不论Cygwin当前是否在运行你都可以访问到SSH,这正是我们需要的功能。选择“yes”继续。
下一步会要求你为这个守护进程输入一个值,可以输入:
ntsec
你会看到脚本在系统里为你提供一些信息,然后要求你创建一个默认名为“cyg_server“的优先账户,当提示你是否要使用别的名称的时候,可以输入“no”,因为默认名也很好用,如果你真不喜欢的话也可以修改。
当然,你还需要为这个账户设置密码。
Cygwin将会以文本的方式把你的密码显示出来,请确保你在安装的环境下输入密码。你还会看到其他一些信息,如果一切正常你会得到成功完成的提示。
你可以重启cygwin或者输入下面的命令来重新启动sshd服务:
net start sshd
现在你可以输入“exit”来关闭Cygwin。
SSH的用户配置
下一步,我们将会为你的用户账户创建合适的SSH关键内容。
ssh-user-config
它会询问你是否为你的账户创建特定的关键内容,根据你的需要作出选择。我会对第一个提示选择“no”,第二个提示“yes”。
SSH2安全性会更高,所以在这里我会推荐你使用它。输入密码之后,它会询问你是否使用ID来访问你的电脑,输入“yes”。
下一步,它会要求你创建SSH2 DSA ID文件,如果你不想用密码来访问的话。这一步我输入的是“no”。
就这么简单!你已经完成了所有的配置。如果你想快速测试一下你的配置,可以在Cygwin窗口命令行里输入:
ssh –v localhost
选项-v表示进程运行的所有细节都会显示出来。它会询问你是否继续连接,输入“yes”然后根据提示输入密码。记住,当你输入用户名,它对大小写是敏感的。
如果一切正常,你将会看到正常的bash命令行提示。
一些小提示
如果你在配置过程中觉得束手无策,一定要确保要使用管理员权限来运行程序。如果你用普通用户配置主机的时候看到一些古怪的提示,一定要保证你是用管理员权限来运行Cygwin。当你退出的时候,会提示你是否继续运行工作任务,你可以输入“no”来结束它们。
最后,如果你测试从其他电脑访问SSH的时候出现错误提示,确保防火墙没有阻止访问端口22(如果是使用SFTP对应的端口是23)。
--------------------------------------------------------------------------------
如果你想熟练使用shell并通过SSH/SFTP来访问你的Windows 7系统,这的确是一个不错的方法。如果你愿意的话,在Cygwin上还可以将Windows的硬盘分区挂在到“/cygdrive/driveletter”。
下面是我自己实际配置时的一些截图:
这个是在Linux下访问windows7的实际效果:
注意:
操作过程中要开启sshd服务: