在windows下安装SSH

原创 2007年09月19日 22:36:00
 

由于要在windows下使用集群系统,因此需要有远程登陆和管理的工具,所以就找来OpenSSH for Windows,根据网上的资料在WinXP系统内进行的反复的尝试,但总是只能进行基于密码的远程登陆,无法采用基于密钥的无密码登陆,这样就必须在每次登陆的时候输入密码,既不安全也不便于实现自动化管理。

索性就改用cygwin实现的openssh,居然没有费什么劲就设置好了,想一想估计是因为OpenSSH for Windows的版本太旧了(最新的v3.81也是2003年的东西了),在WinXP上存在些兼容性的问题,加上需要手动修改其安装目录下的/etc/sshd_conf文件中的一些配置,不太好使也是难免的了。

在WinXP上通过cygwin实现openssh就要简单的多了,主要包括两个部分,首先配置SSH服务器,然后就可以通过在其中建立组与用户密码来实现基于密码的远程登陆,另外一部分就是通过在本地生成密钥对并上传给SSH服务器来实现基于密钥的远程登陆。

当然一切都是从cygwin的安装开始的,无论在服务器端还是远程的客户端都是必须要做的。安装的时候需要注意,除了缺省的那些包之外,还需要安装/libs/zlib/net/openssh/net/tcp_wrappers,这几个包不属于缺省安装的内容,因此需要在安装界面中手动选择。

配置SSH服务器

1. 配置ssh主机,在cygwin的控制台中输入如下命令:

ssh-host-config

当屏幕显示关于“privilege seperation”,输入yes后回车;

当屏幕显示关于“create local user sshd”,输入yes后回车;

当屏幕显示关于“install sshd as a service”,输入yes后回车;

当屏幕显示关于“CYGWIN=”,输入ntsec tty后回车;

当屏幕提示“Host configuration finished. Have fun!”时,就说明已经正常的完成了ssh主机的配置。

2. 启动ssh服务,也就是启动ssh的服务器功能,在cygwin的控制台中输入如下命令:

net start sshd

或者

cygrunsrv start sshd

屏幕提示“CYGWIN sshd服务已经启动成果。”,或者没有任何错误提示(对于cygrunsrv命令而言),说明ssh服务已经正常启动。

3. 创建用户组与密码,在cygwin的控制台中输入如下命令:

mkpasswd cl > /etc/passwd

mkgroup --local > /etc/group

至此服务器的配置已经完成,可以基于用户与密码实现从远程登陆SSH服务器。

通过密码登陆SSH服务器

在cygwin的控制台输入如下命令:

ssh username@hostname

其中hostname为建立SSH服务器的计算机IP地址或机器名,username为用于登陆该计算机的用户名称,如果根据前面的服务器配置步骤,应当就是该计算现有的某个账户名称。

如果是所用的客户端计算机是第一次登陆SSH服务器,命令行中会提示“Are you sure you want to continue connecting (yes/no) ?,只要输入yes即可,SSH服务器会自动将这次的登陆信息存储在/.ssh/known_host文件中。

接着屏幕中会提示输入登陆账户的密码,也就是ssh服务器中登陆账户的密码,当显示“Fanfare!!! You are successfully logged in to this server!!!时,说明已经成功登陆到ssh服务器计算机内了,需要注意的是,此时在当前控制台内输入的命令都将在ssh服务器计算机里运行。

如果要退出登陆,只要在命令行中输入

exit

即可,屏幕中会显示“logout Connection to [hostname] closed.

通过密钥登陆ssh服务器

1. 在客户端计算机上安装好包含openssh的cygwin;

2. 为客户端生成rsa密钥,在cygwin命令行中输入:

ssh-keygen t rsa

对于提示输入密钥文件名或密钥的包含密码时都可以直接回车,从而将无密码保护的密钥保存在缺省文件中,两个密钥文件都保存在客户端当前用户的cygwin账户目录的/.ssh文件夹中,其中公钥的名称比私钥的名称只多一个pub后缀。

3. 将客户端的公钥上传到ssh服务器,这时可以通过前面已经成功的基于密码的方式完成文件的上传,即在客户端的cygwin命令行中输入如下命令:

cd ~/.ssh

scp id_rsa.pub username@hostname:~/.ssh/newkey

4. 在ssh服务器中将客户端的公钥添加到authorized_keys中,在服务器的cygwin命令行中输入如下命令:

cd ~/.ssh

ls        (这时可以在目录中看到newkey文件)

cat newkey >> authorized_keys

rm newkey

chmod 600 authorized_keys  (更改文件的属性)

5. 这时已经可以从客户端通过密钥对登陆到ssh服务器上了,只需在客户端的cygwin命令行中输入:

ssh username@hostname

在没有密码输入提示的情况下,应该可以看到“Ranfare!!! ……”,这说明已经成功登陆,如果在此时继续输入

whoami

可以看到在服务器上的登陆用户名。

需要注意的事情

1. 由于cygwin不能直接支持包含空格的文件路径,因此在cygwin中执行的应用尽量不要有包含空格的路径,如果一定要用,需要在空格前添加“/”来标注;

2. windows的账户一定要有密码,否则只能通过修改sshd_conf来允许无密码的账户登陆;

3. 默认的sshd服务不允许其与桌面进行交互,因此当通过ssh执行基于窗口的命令时,将无法看到创建的窗口,而只能在“任务管理器”中看到该进程已经被创建。为此,可通过进入“控制面板-管理工具-服务”窗口中打开“CYGWIN sshd”服务,在其弹出窗口的“登陆”属性页中选中“允许服务与桌面交互”复选框,如果此时在客户端输入

ssh username@host notepad

将可以看到对话框窗口能够正常弹出。

<script type="text/javascript"><!-- google_ad_client = "pub-0008935412623678"; //500x90, created 1/16/08 google_ad_slot = "3566298054"; google_ad_width = 728; google_ad_height = 90; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

相关文章推荐

安装robotframewrok 的ssh库 pip install robotframework-sshlibrary 遇到 error: Unable to find vcvarsall.bat

安装robotframewrok 的ssh库 遇到 error: Unable to find vcvarsall.bat

在Windows的命令提示符cmd中使用ssh工具--OpenSSH for Windows

在windows上面要ssh linux主机,不外乎常见的就是用winscp/pietty/putty/SecureCRT等工具软件。当然我们也可以直接在命令提示符cmd中使用ssh工具,这个时候...

在 Windows 系统中安装 SSH 服务

今天发现了一个很好的免费软件:freeSSHD,它能在 Windows 系统中安装SSH服务。安装过程毫无悬念,安装结束后它会自动为SSH服务生成密匙: 然后为freeSSHD添加系统服务: 最后...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

在windows下安装SSH

由于要在windows下使用集群系统,因此需要有远程登陆和管理的工具,所以就找来OpenSSH for Windows,根据网上的资料在WinXP系统内进行的反复的尝试,但总是只能进行基于密码的远程登...
  • woshizy
  • woshizy
  • 2009年04月30日 15:25
  • 70857

Windows 中为git添加ssh认证

在Windows下开发使用git已经有段时间了,以前在Ubuntu中一直都是使用的命令行,而且git服务器也是使用的公司内部搭建的git服务器。这两天,自己在做一个项目,代码的同步就想到了git。账号...

Windows下的SSH安装之Cygwin

  • 2017年06月30日 19:56
  • 1.25MB
  • 下载

Windows下搭建Git服务器,安装Copssh通过SSH访问,教程及总结

Git在代码管理工具中是越来
  • fliujun
  • fliujun
  • 2014年08月29日 13:51
  • 2556

Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

Ubuntu上安装和使用SSH网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-serve...
  • neofung
  • neofung
  • 2011年06月29日 01:24
  • 10704
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在windows下安装SSH
举报原因:
原因补充:

(最多只允许输入30个字)