SSH协议:

SSH 为 Secure SHell 的缩写,SSH是Secure SHell Protocol 安全外壳协议,为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

1.安全性比较

SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。

2.SSH按协议主要分为三部分

传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当 SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希 H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。SSH-USERAUTH 也需要知道低层协议是否提供保密性保护

连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发( “隧道技术”)专有

3.利用SSH连接过程

SSH分为两部分:服务器端部分和客户端部分。

服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
      客户端包含ssh程序以及像scp (远程拷贝)、slogin (远程登陆)、sftp (安全文件传输)等其他的应用程序。
      他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。

这只是SSH两端连接的大致过程,SSH 1.x和 SSH 2.x在连接协议上还有着一些差异。

SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd 运行起来并在默认的22端口进行监听(你可以用# ps -waux | grep ssh来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,孩子进程进行这次的连接处理。
      但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序。

SSH工具:

虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合是Unix系统,但是Windows操作系统也能有限度地使用SSH。

Windows下连接Linux的ssh工具:

通常Linux都是服务器系统,而我们办公用的电脑都是Windows系统,而很多时候要通过ssh连接到Linux服务器上进行一些操作,因此就需要用到连接工具。一般都是使用SSH工具,我们来看看具体有哪些SSH工具。(举常用的两例)

1.xshell

xshell也是一款商业级别的ssh连接工具,平时自己使用的时候可以下载评估版本,只要不在公司里使用即可。它的界面图标如下图所示:

(1)第一次双击软件图标,打开后,需要先点击软件界面左上角的文件,点击新建,然后才能出来主机信息配置界面。输入主机别名、ip地址和端口,然后点击确定。就会弹到服务器列表,在列表中选择你刚才添加的服务器名称,然后点击连接。就开始自动连接对应的服务器。

    --》     --》

(2)输入用户名,点击确定,再输入密码。认证成功后就进入到了服务器的shell界面。显示你上一次的登录时间以及IP地址。

2.FinalShell(良心国产,免费的)

详细介绍:https://www.cnblogs.com/judewu/p/9430535.html

使用步骤:

1.图标

2.点击文件夹,选择SSH(Linux)

3.完善连接信息

4.双击连接的主机

5.连接成功

SSH协议及SSH工具相关推荐

  1. SSH 协议的 ssh StrictHostKeyChecking

    项目的SFTP用到了这个参数: @Overridepublic PooledObject<ChannelSftp> makeObject() throws Exception {JSch ...

  2. Linux之SSH协议知识点总结

    最近在写自动化测试用例的时候经常会用python语言去实现文件的上传下载功能,这里主要用到的就是SSH协议.为了更好的理解SSH协议,我就翻看了手头的书,回顾SSH的相关知识点,今天就把它总结下,希望 ...

  3. Linux的远程桌面管理,密钥登陆,SSH协议,四层防御系统实验详解

    Linux的远程桌面管理,密钥登陆,SSH协议,四层防御系统 一.引子 别看上面写了这么多内容,其实都是串起来的,就是看下通过SSH(Secure Shell)协议远程连接到底要经过些什么流程,有什么 ...

  4. 端口22以及与SSH协议的关系

    What is port 22? Is SSH using 22 or different port? How can I check that port 22 is open? We can inc ...

  5. GO实现ssh客户端、SSH服务器

    文章目录 GO实现ssh客户端 相关开源实现 crypto 加密库 crypto/ssh goph gliderlabs/ssh GO实现ssh客户端 相关开源实现 crypto 加密库 此存储库持补 ...

  6. Java 实现 SSH 协议的客户端登录认证方式

    摘自:http://blog.sae.sina.com.cn/archives/333/comment-page-1#comment-37391 简介: 本文首先对 SSH 协议的基础知识作以介绍,然 ...

  7. 使用Telnet与ssh协议远程登录linux系统

    一.计算机的登录 计算机终端设备通过输入用户账户标识和与之对应的口令的方式被计算机验证的过程. 终端的分类: 1)物理终端:计算机本身的控制台设备:通常将其标识为"pty",在现代 ...

  8. Java 实现 SSH 协议的客户端登录认证方式--转载

    背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...

  9. 服务器标配 SSH 协议,你了解多少?

    年初,新冠肺炎疫情的出现,全国数千万名员工在家远程办公,使用个人设备通过家庭网络访问公司资料.因此,IT 安全团队面临了众多新挑战:如何实施更加安全的身份验证方案,以确保只有授权人员和设备才能访问公司 ...

最新文章

  1. es5 编写类风格的代码
  2. python中return的理解-Python return语句 函数返回值
  3. POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
  4. 中国大陆穷光蛋排行榜---转
  5. HTTP referer/HTTP referrer
  6. PHPUnit-附录 A. 断言 (assert)
  7. springcloud(五) Hystrix 降级,超时
  8. mysql粘贴数据_Navicat 如何复制粘贴数据
  9. Python之深入解析一行代码计算每个省面积的神器Geopandas
  10. JDK 11:Java序列化的终结开始了吗?
  11. mysql分列查询,Mysql导出问题,乱码问题,为分列问题解决!!!
  12. wpf 代码获取contextmenu_[C#] 转:在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件...
  13. Warning: 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/' already解决
  14. 重载运算符operator
  15. 结对编程2-单元测试
  16. Shell编程语言(一)
  17. 基于docker快速搭建自己的域名邮箱,mailu邮件服务器
  18. Java接口练习(组装电脑)
  19. 使用C#设计一个Windows应用程序——记事本
  20. 文件上传漏洞 — ::$DATA绕过、点和空格绕过

热门文章

  1. 用keil4打开keil5的工程文件导致卡死解决办法
  2. 首都师范 博弈论 6 1 7逆向归纳法应用2 斯塔克伯格模型
  3. 浅谈从2G到4G空中接口的变化历程
  4. 泡泡龙游戏算法实现简介
  5. window屏幕保护程序没有可以设置的选项
  6. linux nice 命令详解
  7. poj3666序列对应——DP
  8. 【Nav2中文网】十一、迁移指南 (一)Dashing到Eloquent
  9. 2018第二届中国通信业物联网大会精彩前瞻
  10. 【工具】fis3 - 使用教程(01)