Windows上SSH服务器的配置以及客户端的连接

摘自:

http://wenku.baidu.com/view/fb9cef19227916888486d743.html



 

如何在

Windows

上建立

ssh

服务器

 

作者:许腾

 

日期:

2010/9/16 

1.

 

ssh

简介以及本例的应用场景

 

 

ssh

的简介

 

SSH

是一个用来替代

TELNET

FTP

以及

R

命令的工具包,

主要是想解决口令在网上明文传输的

问题。为了系统安全和用户自身的权益,推广

SSH

是必要的。

 SSH

是英文

Secure 

Shell

的简

写形式。通过使用

SSH

,你可以把所有传输的数据进行加密,这样

"

中间人

"

这种攻击方式就不

可能实现了,而且也能够防止

DNS

欺骗和

IP

欺骗。

 

 

本例的应用场景

 

 

    

用户在

client(Linux)

上通过

ssh

远程执行

server(Windows)

上的命令,

比如

c:\test.bat 

    

注:

Linux

版自带

ssh Server

且默认启动,具体设置方法请参见

google

 

 

2.

 

ssh

服务器的安装

(Windows) 

ssh

服务器软件有许多中,我们这里使用的是免费的

freeSSHd

 

 

首先从官方站点下载软件并安装(

http://www.freesshd.com/

 

 

安装完成后进入配置界面(

Server Status

,确认

SSH server

正在运行状态

 

 

 

进入

Users

界面,设定一个访问的用户账户(比如

xut

 

ssh client 

Linux

 

Windows

 

ssh server 

windows

 

 

 

这里我们建立一个叫

xut

的用户,认证有

3

种方式可以选择。从以后通过

ssh

运行命令的方

便(无需输入密码)考虑,我们选择

Public key

认证方式。选择

Password

方式的话,每次

访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其

Shell

权限。

 

 

 

 

进入认证界面,确认

Public key

认证方式属于激活状态(选择

Allowed

Required

 

 

此时

ssh

服务器端的基本设置已经

OK

,可进一步进行更加详细的设置(比如访问限定等)

,此

处不再介绍。

 

注意:服务器端如果有防护墙时应该开发

TCP 22

号端口最为

ssh

连接使用。

 

 

3.

 

ssh

客户端的设置

(Linux) 

由于我们的客户端采用的是

Linux

,所以不用安装客户端软件,系统自带的就有。

 

 

我们需要在

Linux

上创建一个共有和私有的密钥对,私有密钥放到客户端(

Linux

)上,共有

密钥放到服务器端(

Windows

)上。在

Linux

上通过

ssh-keygen

命令来创建。

 

[root@localhost ~]# ssh-keygen -t rsa 

Generating public/private rsa key pair. 

Enter file in which to save the key (/root/.ssh/id_rsa): [

直接回车

[root@localhost ~]# ssh -v 

OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 

usage: ssh [-1246AaCfghkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] 

 

 

 

 

 

 

 

 

 

 

 

[-D port] [-e escape_char] [-F configfile] [-i identity_file] 

 

 

 

 

 

 

 

 

 

 

 

[-L port:host:hostport] [-l login_name] [-m mac_spec] [-o option] 

 

 

 

 

 

 

 

 

 

 

 

[-p port] [-R port:host:hostport] [-S ctl] [user@]hostname [command] 

 

Enter passphrase (empty for no passphrase): [

直接回车

Enter same passphrase again: [

直接回车

Your identification has been saved in /root/.ssh/id_rsa. 

Your public key has been saved in /root/.ssh/id_rsa.pub. 

The key fingerprint is: 

4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53 

其中,

/root/.ssh/id_rsa

为私有密钥,

/root/.ssh/id_rsa.pub

为共有的密钥。

 

此时,需要把共有密钥放到服务器端(

Windows

)进行保存,以便于服务器端进行安全检查。

 

我们通过认证界面找到存放共有密钥的地址

(Public key folder)

 

 

如上图所示,然后在

c:\Program Files\freeSSHd

目录下创建以登录用户名为名字的文本文

件,此处举例为

xut

文件。并将

/root/.ssh/id_rsa.pub

文件中的内容拷贝到

c:\Program 

Files\freeSSHd\xut

文件中。

 

至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。

 

ssh xut@172.28.xx.xxx "c:\test.bat" 

这条命令将执行服务器端的

C

盘下的

test.bat

文件,并把结果返回

,

整个操作不需输入密码。

 

 

4.

 

ssh

客户端的设置

(Windows) 

由于

Windows

不附带

ssh

的客户端和服务器端,我们这里找一个免费的客户端软件

PuTTY

 

PuttY

主页:

http://www.chiark.greenend.org.uk/~sgtatham/putty/

 

 

各种客户端的比较:

http://en.wikipedia.org/wiki/Comparison_of_SSH_clients

 

Putty

主页,我们下载

putty.zip

(含除了

PuTTYtel

以外的所有文件)

,然后解压会发现一

个叫

plink.exe

的文件,这就是我们的

ssh

客户端命令行软件。

 

我们首先要成一个共有和私有的密钥对,使用

putty.zip

中附带的

PUTTYGEN.exe

生成。

 

启动

PUTTYGEN.exe

后可以见到下图界面,点击

[Generate]

即可生成所需密钥对。

 

注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将

保持不变。

 

 

密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没

passphrase

选择忽略即可。假设我们这里把私钥保存为

pri_key.ppk

 

我们把公钥放在

freeSSHd

端(

ssh

服务器端)进行保存,具体保存方法参见【

ssh

客户端的

设置

(Linux)

 

Windows

客户端,执行如下命令进行

ssh

连接,并不需要输入密码即可通过密钥进行自动

认证。

 

plink -i pri_key.ppk 

xut@172.28.xx.xx

x c:\test.bat 

(此时将执行服务器端的

c:\test.bat

脚本。

 

注:第一次连接时将出现“

The server's host key is not cached in the registry

„ ”

提示,我们选择确定就可以了,以后就不会再出现了


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值