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工具。


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值