java 建立ssh隧道_SSH基础
SSH
基本概念
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
功能
- 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。
- 而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
- 通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,
- 而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道
安全验证方法
- 第一种级别(基于口令的安全验证) 只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
- 第二种级别(基于密匙的安全验证) 需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上
协议
- 传输层协议 [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
java 建立ssh隧道_SSH基础相关推荐
- java 建立ssh隧道_如何使用IntelliJ和JDBC SSH隧道并连接到数据库?
我在使用IntelliJ和JDBC连接到服务器上托管的数据库时遇到问题.使用命令行,命令: ssh username@server -L 11100:ct1:28017 -N 成功创建隧道并执行命令: ...
- java 建立ssh隧道_JAVA SSH框架搭建流程
百度出来的,觉得思路很好: 搭建struts应用 2.1 引入需要的jar包 commons-fileupload-1.2.1.jar文件上传 commons-logging-1.0.4.jar日志包 ...
- ssh 隧道_SSH隧道介绍
ssh 隧道 最近,我想设置一个从家用PC到笔记本电脑的远程桌面共享会话. 在阅读设置指南时,我遇到了ssh隧道技术. 尽管有很多关于该主题的文章,但我还是花了很多时间进行谷歌搜索,一些实验和几次Wi ...
- 建立ssh隧道_快速掌握 SSH 端口转发,助力远程工作
概述 ssh 是我们平时连接远程服务器必不可少的的工具,实际上,SSH 还同时提供了一个非常有用的功能,这就是端口转发. 将其他 TCP 端口的网络数据通过 SSH 链接来转发,这一过程有时也被叫做 ...
- 建立SSH隧道(SSH端口转发)
ssh隧道功能,也就是端口转发功能非常好用,可以实现一些代理功能或者是穿透内网功能. ssh的端口转发(或者叫做隧道)命令分为三种: 本地:ssh -C -f -N -g -L listen_port ...
- 在Linux上建立ssh隧道
ssh -L 7070:localhost:* remotehost 上 面的命令行中,-L指定本地端口与远程主机端口之间的隧道, 7070是本地端口,可以任意设置,只要不和其他已经使用的网络服务冲突 ...
- Xshell建立SSH隧道连接
项目场景: 服务器有提供密钥,电脑可以使用密钥通过SSH登陆上服务器. 问题描述: 但是服务器8080端口不对外网开放,本地电脑无法直接访问服务器的8080端口. 解决方案: 通过xshell创建隧道 ...
- 用ssh隧道建立加密代理
putty可以很轻易地建立ssh隧道,实现加密代理.这个方法你需要有一台外部的 sshd 服务器.在自己的电脑上利用 putty 连接 sshd 服务器,建立ssh隧道. 在putty中设置连接时选择 ...
- privoxy支持同时代理多少个_使用ssh隧道+privoxy实现Linux全局代理
使用ssh隧道+privoxy实现Linux全局代理 ssh简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为 ...
最新文章
- android 多个url请求,[Android]Retrofit多base_url请求解决方案
- jq封装post请求数据_GitHub - xiaohange/JQHttpRequest: GET/POST / PUT / DELETE 网络请求的封装...
- 何雯娜 (为奥运冠军名字作诗)
- TypeScript里get属性的实现
- HTTP协议及其POST与GET操作差异 C#中如何使用POST、GET等
- SilverLight客户端搭建完善聊天室 测试网址swkzy.vicp.net
- excanvas让canvas兼容ie7,8
- 去掉CSDN blog 多余的版权申明部分[转贴]
- 大会直击|伯明翰大学教授姚新:类脑计算研究中三个被遗忘的问题
- 恒强制版系统980_恒功率、大功率及无线充电,充电设备面临哪些趋势和挑战?...
- 虚拟专用网之L2TP协议介绍
- Hbase------刘飞
- 电动汽车(EV)无线充电(WPT)及标准
- 1厘米等于多少个像素
- 网络系统管理赛项之Debian七. 2021年全国职业院校技能大赛将挑选各省1人或1组队伍参赛
- IntelliJ IDEA Ultimate破解安装及使用其进行Spring程序开发
- web页面:窗口切换
- python项目案例开发pdf-python项目开发案例锦集 pdf|消费金融公司概念股
- 2021-06-15记录端午假期学习微信小程序 计算器
- 还在相信男女之间真的有纯友谊?太傻太天真!
热门文章
- 前端学习(1840):前端面试题之小程序入门
- 前端学习(1295):第三方模块npm
- 前端学习(970):fastclick插件使用
- cocos creator 数组_CoCos Creator中的数据类型
- 对未标记为可安全执行的脚本_三、??XSS跨站脚本攻击
- npcap loopback adapter是什么意思_抖音限流是什么意思? 抖音为什么突然限流?
- 微软CRM 2011 Beta 新功能之二:不同组织不同基本语言
- Problem01 不死神兔
- 0414-复利计算再升级
- 【推荐】“水果”公司的复兴 (乔布斯和苹果公司)---Google黑板报