ssh协议和telnet协议 理解 小结

SSH简介
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH
为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其它网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。端口22.

Telnet简介

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在終端使用者的电脑上使用telnet程序,用它连接到服务器。終端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。端口23.

传统telnet联机会话所传输的资料并未加密,这代表所输入及显示的数据,包括账号名称及密码等隐密数据都是明文传送的,很可能会遭其它人窃听。

SSH具有下列特性:
安全的远程登录
安全的文件传输
安全的远程执行命令
密钥和代理
访问控制以及端口转发
而这些,都是传统的telnet所不具备的!简言之,SSH更安全!

    使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他们会利用你安全意识的缺乏。传统的网络服务程序如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
  SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。 
  在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。SSH1使用RSA加密密钥,SSH2使用数字签名算法(DSA)密钥保护连接和认证。加密算法包括Blowfish,数据加密标准(DES),以及三重DES(3DES)。SSH保护并且有助于防止欺骗,“中间人”攻击,以及数据包监听。
    通过使用SSH把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。

登录命令:telnet HOST [PORT]

断开Telnet连接的命令:exit

成功地建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet服务”,并去除NTLM验证。也可以使用专门的Telnet工具来进行连接,比如STERM,CTERM等工具。

SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。
        SSH1又分为1.3和1.5两个版本。SSH1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。
       SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。

    • Linux下的ssh命令是OpenSSH的客户端程序。
    • Red Hat Linux 9 默认开启OpenSSH服务。
    • Red Hat Linux 9 默认没有安装Telnet服务,因为它不安全。
  • 在Linux环境下使用ssh登录远程Linux系统

    $ ssh 远程主机上的用户名@远程主机的IP地址或FQDN(Fully Qualified Domain Name )

    例如:

    // 以root身份登录IP地址为192.168.1.19的Linux系统
    # ssh root@192.168.1.19
    The authenticity of host '192.168.1.19 (192.168.1.19)' can't be established.
    RSA key fingerprint is 51:11:9c:e3:fa:d5:c7:e5:fc:0b:76:f1:c4:9e:03:fd.
    Are you sure you want to continue connecting (yes/no)? yes
    // 如果第一次使用该账号进行ssh登录需确认密钥,选择“yes”才可继续登录过程
    Warning: Permanently added '192.168.1.19' (RSA) to the list of known hosts.
    root@192.168.1.19's password:
    // 在此输入用户口令,口令输入过程中没有回显
    Last login: Wed Apr 30 02:15:08 2003 from 192.168.1.19
    #
    // 正确登录后出现Shell提示符

使用Telnet登录

由于Telnet功能太强大,而且也是入侵者使用最频繁的登录手段之一,因此微软公司为Telnet添加了身份验证,称为NTLM验证,它要求 Telnet终端除了需要有Telnet服务主机的用户名和密码外,还需要满足NTLM验证关系。NTLM验证大大增强了Telnet主机的安全性,就像 一只拦路虎把很多入侵者拒之门外。

登录命令:telnet HOST [PORT]

断开Telnet连接的命令:exit

成功地建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet服务”,并去除NTLM验证。也可以使用专门的Telnet工具来进行连接,比如STERM,CTERM等工具。

Linux 中的ssh服务:

[root@vs022 ~]# rpm -qa|grep ssh
libssh2-1.2.2-7.el6_1.1.x86_64
openssh-server-5.3p1-70.el6.x86_64
openssh-5.3p1-70.el6.x86_64
openssh-clients-5.3p1-70.el6.x86_64

[root@vs022 ~]# rpm -qa|grep ssl
nss_compat_ossl-0.9.6-1.el6.x86_64
qpid-cpp-client-ssl-0.12-6.el6.x86_64
qpid-cpp-server-ssl-0.12-6.el6.x86_64
openssl-1.0.0-20.el6.x86_64

启动SSH服务器:

在UNIX/Linux环境下,服务器程序放置在/usr/sbin目录下:

[root@vs022 sbin]# pwd
/usr/sbin
[root@vs022 sbin]# ls -l|grep ssh
-rwxr-xr-x. 1 root root      525952 Sep  7  2011 sshd

启动方法如下:

# sshd
# ps x
可以看到SSHD已经启动了。如果不希望每次重启动系统,都要手工运行启动SSHD,则可以自己写一个脚本,放置在init.d目录下,让系统启动后,自动执行SSHD服务的启动工作。或者直接在rc.local中加入一行/usr/local/sbin/sshd也可。Windows NT/2000/下启动SSH2 Server,运行程序组中的start SSH2 Server即可。

使用SSH:

客户端在UNIX/Linux系统中就是SSH,存放在/usr/bin目录下:

[root@vs022 bin]# pwd
/usr/bin
[root@vs022 bin]# ls -l|grep ssh
-rwxr-xr-x  1 root root      40712 Aug  2  2010 gpgkey2ssh
lrwxrwxrwx. 1 root root          5 Oct 17  2013 slogin -> ./ssh
-rwxr-xr-x. 1 root root     381016 Sep  7  2011 ssh
-rwxr-xr-x. 1 root root     130288 Sep  7  2011 ssh-add
-rwxr-sr-x. 1 root nobody   112704 Sep  7  2011 ssh-agent
-rwxr-xr-x. 1 root root       1351 Sep  7  2011 ssh-copy-id
-rwxr-xr-x. 1 root root     158960 Sep  7  2011 ssh-keygen
-rwxr-xr-x. 1 root root     220960 Sep  7  2011 ssh-keyscan

其中有SSH1、SSH2、scp等客户端工具。

有了SSH客户端软件,如果你要上传文件,不必向以前一样再开一个FTP窗口,再次认证,然后上传文件。使用SSH客户端自带的scp工具,就可以直接将文件上传到远端服务器上。

在Windows系统中,可供使用的SSH客户端有:SecurCRT,也即CRT的支持SSH的版本(下载地址:http://www.vandyke.com/),这是一个很好的支持SSH的远程终端,它同时支持SSH1及SSH2。用户可以根据服务器端自由选择,让它支持相应的标准。

另一个可供选择的是ssh.com提供的客户端,下载地址:ftp://ftp.ssh.com/pub/ssh/SSHWin-2.4.0-pl2.exe,这是新版本的SSH2客户端。

另外,还有支持SSH的FTP客户端工具,其中sshwin-2.4中就有一个SSH Secure File Transfer Client,它可以用来在两个主机之间传输加密后的文件。也即scp的功能。配合SecureCRT的也有一个相应的支持SSH的FTP工具,其名称为:SecureFX,可以从www.vandyke.com/下载使用。

由于种种原因,一些支持SSH的GUI客户端不一定会很好地支持以上各个服务器,大家可以自行组合以上工具,找到适合自己的工具。一般来说,在UNIX下的客户端对各种服务器的支持是最好的。通常在选择服务器及客户端软件时,最好选择同一软件商的产品,这样不会出现不兼容的问题。

需要补充的是,如果你既想使用SSH2又不想付费,那么一个可供选择的自由软件是Openssh,它是一个遵守GPL协议的软件包,同时支持SSH1及SSH2标准,是另一个被广泛使用的SSH软件包(可以从www.openssh.com下载)。Openssh的最新版本为Openssh-2.5.1,提供全部源码。不过,在编译前,应仔细阅读其说明文件。编译过程中要用到zlib及openssl两个软件包,用户首先需要下载并安装它们,之后再编译openssh。具体过程请阅读软件包中的install文件。

openssh已经成为了Linux系统中默认的ssh工具。

时间: 2024-08-31 05:36:01

ssh协议和telnet协议 理解 小结的相关文章

jmeter怎么能将http协议和socket协议一起用

问题描述 jmeter怎么能将http协议和socket协议一起用 唔,是这样的.最近领导给我的任务是用JMeter给我们的手游服务器端做压力测试,其中注册,登陆和验证都是http协议的,之后的一些类似创建角色的命令都是socket协议的,现在我要完成一个流程就是:注册---->用注册的账号登陆--->登陆后的返回值验证----->然后随机走各种socket命令,其中有一个是需要登陆后的返回值做验证的.现在http命令都弄好了,网上的教程虽然写的很基础但是也不是看不懂,可是socket那

网络协议X档案之BOOTP协议、TFTP协议和DHCP协议

网络协议--BOOTP协议说明:BOOTP协议全称Bootstrap Protocol(自举协议),BOOTP协议是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每 个用户去设置静态IP地址.使用BOOTP协议的时候,一般包括Bootstrap Protocol Server(自举协议服务端)和Bootstrap Protocol Client(自举协议客户端)两部分.应用:该协议主要用于有无盘工作站的局域网中,客户

网络协议基础知识 SMTP协议和UDP协议

SMTP协议的命令和应答 从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的.在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响.双方如此反复多次,直至邮件处理完毕.SMTP协议共包含10个SMTP命令,列表如下:

网络协议基础知识:SMTP协议和UDP协议

SMTP协议的命令和应答 从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的.在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响.双方如此反复多次,直至邮件处理完毕.SMTP协议共包含10个SMTP命令,列表如下:

Android分别使用HTTP协议和TCP协议实现上传文件

http://blog.csdn.net/furongkang/article/details/6838450 Android上传文件有两种方式,第一种是基于Http协议的HttpURLConnection,第二种是基于TCP协议的Socket. 这两种方式的区别是使用HttpURLConnection上传时内部有缓存机制,如果上传较大文件会导致内存溢出.如果用TCP协议Socket方式上传就会解决这种弊端. HTTP协议HttpURLConnection 1. 通过URL封装路径打开一个Htt

nat协议-关于NAT协议和IP的问题

问题描述 关于NAT协议和IP的问题 根据NAT协议,局域网里的计算机共用一个公网IP连接到Internet,那么现在知道对方的ip,但是这个IP实际上并不能指向到局域网中的某个计算机(因为是共用一个外网ip),那么怎么通过IP地址对指定的局域网中的计算机进行攻击? 解决方案 局域网中有服务器,要确定是哪一台机器,需要查看服务器上的日志. 解决方案二: 攻击不了.因为只有内网才能主动发起连接.

如何在ASP程序中使用Telnet协议

程序 1 设计背景 越来越多的企业在建立自己的WEB站点时选择了基于微软的构架.Windows操作系统.IIS WEB Server和ASP技术得到了广泛的使用.但很多企业的网络中存在大量的UNIX主机,导致我们经常希望在浏览器中实现对UNIX系统资源的访问和控制,例如:通过浏览器查看UNIX系统中的用户进程.查看网络状态.甚至完成杀死一个进程这样的控制操作.以前我们可以通过Telnet程序远程登录到UNIX主机上,输入用户名和口令,并在命令行方式下输入命令.通过ASP中的ActiveX控件编程

关于telnet协议选项协商时的对话问题

问题描述 关于telnet协议选项协商时的对话问题 在下是个菜鸟,初步接触telnet协议,在百度查看协议内容时,发现里面有一些话,可能是由于英文翻译成中文的原因,读起来非常拗口,而且看不懂.所以在此求教! 笔者知道在使用"WILL","WONT","DO","DONT"这种选项协商对话的时候,如果没有其他机制,会出现一种死循环,比如 A:IAC WILL 32 B:IAC DO 32 (接下来A以为B是发的请求,而不是应答,

解耦神器 —— 统跳协议和Rewrite引擎

题记:天猫App长大了,已经长成了流量以千万计规模的App,当下至少有10个团队在直接维护天猫App.在App长大,团队扩充的过程中解耦是一个永恒的话题,而界面解耦又是App架构的重中之重. 统跳协议是天猫App统一跳转协议,主要负责天猫App界面之间的串联,也就是界面跳转服务.Rewrite引擎是与之配合的一套URL重写引擎,可以通过配置实现重写规则动态化. 历史上的今天 统跳协议的前身是一套叫做internal的协议,internal要重点解决的问题是在WebView和推送通知中如何跳转到指