当前位置: 首页 > news >正文

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

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)

 

 

这里我们建立一个叫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): [直接回车]
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.xxx c:\test.bat

(此时将执行服务器端的c:\test.bat脚本。)

注:第一次连接时将出现“The server's host key is not cached in the registry… ”提示,我们选择确定就可以了,以后就不会再出现了。

相关文章:

  • UIScrollView中使用AutoLayout
  • mysql LINESTRING ,POINT 类型操作
  • 读Git Pro2的笔记
  • Vue.js简介及指令
  • 全面分析 Spring 的编程式事务管理及声明式事务管理
  • jeesite优化
  • 统计数据库大小的方法
  • 带你走进单片机的世界——初始MCU
  • Jenkins2.32打包Unity项目的记录
  • 约瑟夫环数组简单实现
  • Python中元组、列表、字典的遍历和相互转化
  • CentOS 7安装JDK
  • Linux- 关于windows和Linux和Mac的换行符
  • 免费「模拟面试」福利反馈连载(20180128期)
  • centos7 内存硬件信息检测
  • Google 是如何开发 Web 框架的
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [数据结构]链表的实现在PHP中
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Java Agent 学习笔记
  • Java 网络编程(2):UDP 的使用
  • JavaScript HTML DOM
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Map集合、散列表、红黑树介绍
  • maya建模与骨骼动画快速实现人工鱼
  • Vue 2.3、2.4 知识点小结
  • vue.js框架原理浅析
  • 闭包--闭包之tab栏切换(四)
  • 成为一名优秀的Developer的书单
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 后端_MYSQL
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 警报:线上事故之CountDownLatch的威力
  • 开发基于以太坊智能合约的DApp
  • 两列自适应布局方案整理
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 译有关态射的一切
  • 原生Ajax
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 国内开源镜像站点
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 选择阿里云数据库HBase版十大理由
  • ​Linux·i2c驱动架构​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (二)JAVA使用POI操作excel
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (四) 虚拟摄像头vivi体验
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)3D模板阴影原理