一、远程登录协议
1、telnet简介
以前,很少有人买得起计算机,更甭说买功能强大的计算机了。所以那时的人采用一种叫做Telnet的方式来访问Internet:也就是把自己的低性能计算机连接到远程性能好的大型计算机上,一旦连接上,他们的计算机就仿佛是这些远程大型计算机上的一个终端,自己就仿佛坐在远程大型机的屏幕前一样输入命令,运行大机器中的程序。人们把这种将自己的电脑连接到远程计算机的操作方式叫做“登录”,称这种登录的技术为Telnet(远程登录)。
2、Telnet的工作原理
当你用Telnet登录进入远程计算机系统时,你事实上启动了两个程序,一个叫Telnet客户程序,它运行在你的本地机上,另一个叫Telnet服务器程序,它运行在你要登录的远程计算机上,本地机上的客户程序要完成如下功能:
1) 建立与服务器的TCP联接
2) 从键盘上接收你输入的字符
3) 把你输入的字符串变成标准格式并送给远程服务器
4) 从远程服务器接收输出的信息
5) 把该信息显示在你的屏幕上
远程计算机的“服务”程序监听在tcp 22端口,一接到你的请求,它马上活跃起来,并完成如下功能:
1) 通知你的计算机,远程计算机已经准备好了
2) 等候你输入命令
3) 对你的命令作出反应(如显示目录内容,或执行某个程序等)。
4) 把执行命令的结果送回给你的计算机
5) 重新等候你的命令
3、telnet的使用
安装telnet服务器端和客户端:
[[email protected] ~]# yum install telnet telnetserver #安装telnet客户端和服务端程序 [[email protected] ~]# rpm -ql telnet-server /etc/xinetd.d/telnet #telnet是由超级守护进程管理的服务 /usr/sbin/in.telnetd /usr/share/man/man5/issue.net.5.gz /usr/share/man/man8/in.telnetd.8.gz /usr/share/man/man8/telnetd.8.gz [[email protected] ~]# rpm -ql telnet /usr/bin/telnet /usr/share/man/man1/telnet.1.gz
启动telnet-server:
[[email protected] ~]# service xinetd start [[email protected] ~]# chkconfig telnet on
使用客户端telnet:
telnet [-l user] host-name [port]
[[email protected] ~]# telnet 192.168.10.4 Trying 192.168.10.4... Connected to 192.168.10.4. Escape character is ‘^]‘. CentOS release 6.5 (Final) Kernel 2.6.32-431.el6.x86_64 on an x86_64 login: root #telnet默认禁止root远程登录 Password: Login incorrect login: anyfish #要使用远程主机上的用户帐号和密码登录 Password: Login incorrect login: xj Password: Last login: Sat Jan 7 17:33:50 from Node3 [[email protected] ~]$
总结:
Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。
Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。
telnet的最佳用途就是检查远程主机上任何特定服务(基于tcp协议的服务)的状态。
比如说,如果我们想要检查在本地服务器上通过端口80运行的Apache Web服务的状态,可以这么做:
[[email protected] ~]# telnet 192.168.10.3 22 #此时不需要远程主机开启了telnet服务 Trying 192.168.10.3... Connected to 192.168.10.3. #已连接 Escape character is ‘^]‘. SSH-2.0-OpenSSH_5.3 #此时阻塞在这里,是等待我们输入命令,就表示22号端口开启了,远程主机有服务监听在此端口,如果输入的命令不符合对方服务的协议就会被强制退出 Protocol mismatch. Connection closed by foreign host. [[email protected] ~]# [[email protected] ~]# telnet 192.168.10.3 23 #如果是没监听的端口,会明确的拒绝 Trying 192.168.10.3... telnet: connect to address 192.168.10.3: Connection refused [[email protected] ~]#
openssh客户端组件:
ssh:
ssh [email protected]
ssh -l USERNAME HOST
-p port:指定要连入端口
ssh认证机制:
基于口令:
基于密钥:
客户端在本地生成一对密钥,客户端将公钥复制到要登录的用户的家目录下.sshz中的一个名为authorized_keys或authorized_key2文件中
配置过程:
1、生成密钥对儿
# ssh-keygen [-t rsa]