java 建立ssh隧道_SSH基础

SSH

2bcabd9162f0d23ca7535c56552b91bb.png

基本概念

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

功能

  1. 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。
  2. 而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
  3. 通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,
  4. 而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道

安全验证方法

  1. 第一种级别(基于口令的安全验证) 只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
  2. 第二种级别(基于密匙的安全验证) 需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上

协议

  • 传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
  • 用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
  • 连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

传输方法

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。 服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。 客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。 他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。SSH 1.x和SSH 2.x在连接协议上有一些差异。 一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。

传输过程

远程主机收到用户的登录请求,把自己的公钥发给用户-->用户使用这个公钥,将登录密码加密后,发送回来-->远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

参考:百度百科

使用方法

ssh远程登录

# 远程登录 默认端口22
ssh username@ip_host# 远程登录 指定端口
ssh -p 端口 username@ip_host

ssh登出

logout

ssh远程上传文件

ssh

scp

# 上传文件
scp 本地端文件path username@ip_host:服务器端文件路径# 上传文件夹
scp -r 本地端文件夹path username@ip_host:服务器端文件文件夹

ssh远程下载文件

ssh

scp

# 拉取文件
scp username@ip_host:服务器端文件路径 本地端文件path# 拉取文件夹
scp username@ip_host:服务器端文件夹路径 本地端文件夹path

使用ssh在远程后台不中断地跑程序

nohup python test.py

扩展

解包:tar xvf FileName.tar.xz
打包:tar cvf FileName.tar DirName

若你对人工智能(CV/NLP)、C++/python编程、互联网就业及发展有兴趣,欢迎点赞关注和收藏。谢谢鼓励!!!

Anxjing.AI:SSH实现原理​zhuanlan.zhihu.com
b1ca6dd73a56bcd9840df3e2dbd8763c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows 批处理

暂停 pause>nul 批处理删除自身 attrib -h -s -r -a %0 del %0 第一行是把自身可能有的隐藏,系统,只读,存档属性去掉 第二行代码是删除自身(%0代表自身) 设置默认的控制台前景和背景颜色 COLOR [attr] attr …

GJM : Unity3D HIAR -【 快速入门 】 三、导入 SDK

导入 SDK 本文将向您介绍如何在 Unity 工程中导入 HiAR SDK for Unity。在开始之前,请先访问 HiAR 官网下载最新版本的 SDK。 下载 HiAR SDK for Unity Step 1. 下载解压 SDK 前往下载页面下载 SDK 包,可以获得一个 zip 文件:hiar_sdk_unity_…

5g时代计算机网络过时,5g云电脑 取代主机(5g时代云电脑会普及吗)

云电脑会是未来的发展方向,但是要完全取代传统的个人电脑,还需要一段时间。云电脑相比传统个人电脑,更方便灵活,更环保,更便宜。但是目前网络速度还有一定瓶。有一定关系,首先5g的普及,电脑网速…

蚁群算法

蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究…

中修改环境变量_Golang入门(1):安装与配置环境变量的意义

摘要在几年前学习Java的时候,环境的配置就会劝退一部分的初学者。而对于Golang来说,也需要从环境的配置开始学起。这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量GOROOT和GOPATH的配置以及这两个环境变量起到什么样的…

1219个人总结

我们团队使用的工具有:Eclipse,github(保存代码,实现代码合并) 使用的API:Bmob(云数据)官网:http://www.bmob.cn/ Mob(短信验证):http…

华科计算机学院有博士吗,华科计算机学院博士毕业条件

华中科技大学计算机学院2008级博士论文规定根据《华中科技大学申请博士学位发表学术论文的规定》,我院博士研究生申请博士学位前,须按以下要求之一发表学术论文:1、A类、B类或学院规定的国际顶尖学术会议论文一篇;2、SCI期刊论文一…

js IE和Firefox下event处理

如果在使用javascript的时候涉及到event处理,就需要知道event在不同的浏览器中的差异,因为javascript的事件模型有三种,它们分别是NN4、IE4和W3C/Safari;这也造成了在不同的浏览器中处理event的差异,这里结合一些零碎的代码来说明…

线程打印状态_Java线程状态的转换

根据上面关于线程状态的介绍我们可以得到下面的线程状态转换图:BLOCKED与RUNNABLE状态的转换我们在上面说到:处于BLOCKED状态的线程是因为在等待锁的释放。假如这里有两个线程a和b, a线程提前获得了锁并且暂未释放锁,此时b就处于BLOCKED状态。我们先来看一个例子:初…

phpStudy中Xdebug设置 phpStorm设置

在windows系统使用phpstduy集成环境,PHP版本为7.0.1,参考网上文章配置后,在phpinof()中没有xdebug信息, 解决方法,拷贝widzrd.php中提示的文件路径,重启phpstudy后,终于有了xdebug。 1.查看php信息&#x…

SQLSERVER EXCEPT运算符=ORACLE MINUS

Oracle中 MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存…

音乐 美术 劳技 计算机教研组工作总结,音体美信息教研组工作总结

音体美信息教研组工作总结本学期音体美信息技术教学工作围绕教研室,结合教导处教研工作安排和音体美劳信息学科特点,以新课程理念建设为核心,以提高教师新课程改革的实践与创新能力为重点,以集中教研培训、校本培训和课改实践课相…

python3.5安装scrapy_Python3.5 win7安装scrapy

1、搭建虚拟环境pip install virtualenvwrapper2、指定虚拟环境存放文件路径2.1:E盘新建EvEvns2.2:计算机->高级系统设置->环境变量->系统变量->新建变量名:WORKON_HOME变量值:E:\Evns保存并退出3、创建虚拟环境mkvirtualenv py34、进入虚拟…

flex 点击空格键会有以前点击过的事件的保留

点击了一个按钮那个就会有焦点。 flex的空格键是默认触发有焦点的按钮的点击事件的。 所以你要在那里按钮事件里面写一个this.setFocus()让焦点消失,就可以去除空格键点击的效果了。

GOAndroid的安装和配置

android环境的配置还是比较复杂的,特别对于我这样一直使用mfc的程序员来说,有很多观念上需要转变。好在配置成功后就能够不断复用,那么这样的问题值得整理出来 一、安装jdk 二、解压adt-bundle-windows(GO)。其中sdk是配置好的 三、配置环境变…

物理与计算机信息工程学院,泉州师范学院物理与信息工程学院

泉州师范学院坐落在全国首批历史文化名城、著名侨乡、国际花园城市——福建省泉州市,有东海和诗山两个校区,占地1185亩。东海主校区位于晋江和洛阳江两江交汇处,携江临海,极目古港沧澜;诗山校区南倚高盖名山&#xff0…

开发项目之考研计划_软件测试之项目测试计划模板

1. 引言1.1. 文档版本1.2. 项目情况1.3. 预期读者----部门经理----项目经理----测试经理----需求分析师----开发工程师----测试工程师----XXX银行经理----XXX基金公司经理1.4. 项目质量定义本项目软件测试是为了保障,XXX财务核算系统在应对营改增政策调整的系统升级…

ie9支持string.trim()

忽然间发现 ie9支持string.trim()! 搞得我以为我写的代码是对的,结过在别的浏览器上一测就报错了。