文档章节

远程登录:telnet与ssh

nao
 nao
发布于 2014/03/23 19:22
字数 1901
阅读 4758
收藏 10

1,什么是远程登录

       远程登录是用户使用ssh,telnet等命令,登录到一台远程服务器进行操作,使自己的计算机暂时成为远程主机的一个仿真终端的过程。

      登录系统后所有的操作都是对远程主机的操作,仿真终端等效于一个非智能的机器,它只负责把用户输入的每个信息回显在本地终端屏幕上,再将主机输出的每个信息回显在本地终端屏幕上。。

       远程登录是现代网络中最重要的手段之一,几乎所有的网络设备都提供远程登录功能,Linux系统的远程登录功能更为强大。

2, telnet

     为了适应异构环境,Telnet协议定义了数据和命令在Internet上的传输方式,此定义被称作网络虚拟终端NVT(Net Virtual Terminal)。它的应用过程如下:

     对于发送的数据:客户机软件把来自用户终端的按键和命令转化为 格式,并发送到服务器,服务器软件将收到的数据和命令,从NVT格式转换为远程需要的格式。

     对于返回的数据:远程服务器将数据从远程机器的格式转换为NVT格式,而本地客户机将将接收到的 格式数据在转换为本地的格式。

3,SSH

     SSH是英文Secure shell 的缩写形式,它是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄漏问题。

3.1  什么是SSH?          

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

     从前,一个名为Tatu Yl?nen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)。 通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,虽然许多人把Secure Shell仅当作Telnet的替代物,但你可以使用它来保护你的网络连接的安全。你可以通过本地或远程系统上的Secure Shell转发其他网络通信,如POP、X、PPP和FTP。你还可以转发其他类型的网络通信,包括CVS和任意其他的TCP通信。另外,你可以使用带TCP包装的Secure Shell,以加强连接的安全性。除此之外,Secure Shell还有一些其他的方便的功能,可用于诸如Oracle之类的应用,也可以将它用于远程备份和像SecurID卡一样的附加认证。

3.2 SSH的工作机制
      SSH分为两部分:客户端部分和服务端部分。

      服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是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 sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

      但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

3.3 Telent与SSH的比较
Telnet在传输机制上是有安全漏洞的,因为它们在传输数据时使用明文机制;如果有人在网络上进行截获这样的数据,那么一些重要的数据将会不可避免的泄露。
而SSH相对来说有两个优点:(1)SSH是比较可靠的的远程登录和其他安全服务的协议,它采用了数据加密机制,能够防止DNS欺骗和IP欺骗。(2)所传输的数据是经过压缩的,因此相对来说加快了传输速度。
SSH协议是建立在应用层和传输层上的安全协议,主要包括三个部分:(1)传输层协议内容,提供认证,数据的完整性检查等功能。(2)用户认证协议层,它运行在传输层上,主要实现了通信过程中的身份认证,认证方式包括口令认证,密钥认证等。(3)连接协议层,负责分配加密通道到逻辑通道上,运行在用户认证协议层上。
SSH协议可以替代以一些例如Telnet,ftp一些传统网络程序协议,在不安全的通信环境中提供了比较可靠的数据保护机制。
 
SSH TELNET 有什么区别 ?
telnet:就是远程登陆,通讯的数据是明文传输,所以不太安全.

ssh:安全的shell,即你在与主机通讯的数据是加密传输的,这样别人要用网络工具什么来截取包获得信息就困难了。




© 著作权归作者所有

nao

nao

粉丝 27
博文 155
码字总数 108154
作品 0
成都
后端工程师
私信 提问
每天一个linux命令(39):telnet命令

telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算...

姬风
2014/03/30
0
0
CentOS 5.8升级OpenSSH,OpenSSL到最新版

因业务系统安全要求需要升级OpenSSH版本到最新版。原有CentOS 5.8系统自带版本如下。 升级版本: 经过多次验证最终确定使用ssh最新版本openssh-7.3p1和openssl 0.9.8的最终版本openssl-0.9.8...

m_lm
2016/11/06
0
0
python 使用pexpect实现自动交互示例

Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。 shell 命令expect使用 http://blog.51cto.com/superl...

super李导
2018/05/22
0
0
Linux课堂:在Linux操作系统上部署SSH应用

远程管理是系统管理员必须掌握的一门诀窍。如果每次服务器出现故障系统管理员都要跑到服务器前面才能够修理的话,那是一件很头疼的事情。通常情况下,Telnet或者SSH都可以实现远程连接。但是...

范堡
2009/05/23
265
0
使用telnet远程访问虚拟机

前面说到通过SSH2(Secure CRT)来远程登录和访问我们的虚拟机,其实还可以通过wondows自带的telnet服务远程登录linux。 首先,要保证本机的telnet服务有开启,不然在dos命令时,是无法识别的。...

SherryX
2017/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

访问LNMP虚拟主机出现报错:No input file specified.

之前一直是使用lnmp一键包,但是访问创建的虚拟主机,并没有出现过的错误:No input file specified. 网上的文章很多,但是都是转载,而且原因也很多,根本不适用 后面在lnmp一键包官网找到解...

wenzhizhong
45分钟前
3
0
OSChina 周三乱弹 —— 你还能管得住观众愿意看谁吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享李宗盛的单曲《凡人歌 (电视剧《碧海情天》主题曲)》:你我皆凡人,生在人世间#今日歌曲推荐# 《凡人歌 (电视剧《碧海情天》主...

小小编辑
今天
567
13
Inf2Cat, signability test failed vc2019 wdk驱动sys build签名

解决问题的方法非常简单,只要让Inf2Cat验证的时候使用local时间就可以了。打开package工程的属性,在inf2cat工具的属性中进行设置。

simpower
今天
3
0
LinkedHashMap 是如何保证有序的?

//map的遍历方法如下 for (Map.Entry<String,Integer> entry : map.entrySet()) { System.out.println(entry.getKey()+":"+entry.getValue()); } HashMap#entry......

暗中观察
今天
3
0
Linux的基本命令

目录的操作命令(增删改查) 增: mkdir 目录名称; 查: ls 可以看到该目录下的所有的目录和文件 ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 ls -l,可以看到该目录下的所有目录和...

凹凸凸
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部