实验:SSH服务器的搭建与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六:SSH服务器的搭建与应用
SSH简介:很多设备,如路由器、防火墙等等,都提供了一种远程访问与管理的接口.如Windows服务器可以利用Telnet协议进行远程管理等等.但是,Telnet不安全.其在传输过程中,帐户与密码都是明文传输的.在网络传输过程中,这是非常危险的.
针对Telnet协议不安全这种情况,有人开发出了一个SSH协议.其原理跟Telnet类似,只是其具有更高的安全性.SSH是一个运行在传输控制层上的应用程序.他跟Telnet相比,提供了强大的认证与加密性能.他可以保证在我们连接到网络设备的过程中,其传输的数据是加密处理过的.这么做,就是为了保障帐户与口令的安全.
SSH原理:简单的说SSH是secure shell protocol的简写,它通过对联机数据包的加密技术进行数据的传输,加密技术是通过一对公钥和私钥(public key and private key)组合成的密钥对进行加密与解密的操作。
当SSH服务激活之后,会产生一支公钥和私钥,当数据由Client 端传送到 Server端时,这些数据会先经过公钥(,Public Key)来进行加密,那么等这些经过公钥加密的数据传送到 Client 端之后,就可以由私钥(Private Key)来进行解密.需要注意的是,这些公钥与私钥在每一部计算机上面都不一样,,你与 Server 的联机对其他人来说,都是很难去破解!
1、RHEL5系统中OpenSSH服务器和客户端软件是默认安装的
openssh软件包是实现ssh功能的公共软件包
openssh-server软件包实现了SSH服务器的功能
openssh-clients软件包中包含了SSH服务的客户端程序
2、SSH服务器的启动及应用:
[root@redfeng1 ~]#service sshd start
3、linux客户端登录到服务器的方法(服务器身份认证):
[root@redfeng1 ~]#ssh 192.168.1.240
The authenticity of host '192.168.1.240 (192.168.1.240)' can't be established.
RSA key fingerprint is
5b:48:e7:c0:38:22:cd:cd:2c:85:c9:34:c1:c5:c9:72.
Are you sure you want to continue connecting (yes/no)? yes //输入yes
Warning: Permanently added '192.168.1.240' (RSA) to the list of known hosts.
root@192.168.1.240's password: //这里输入对方主机的密码,
屏幕不会显示信息
Last login: Sun Mar 7 21:00:29 2010 from 192.168.1.241
此时客户端通过密码认证方式登录到服务器
4、linux客户端通过密钥认证登录到服务器(客户端身份认证):Server部分为redhat1,IP为192.168.1.240的主机使用Root这个帐号
Client部分为redhat2,IP为192.168.1.241的主机使用Root 这个帐号
注:这里主要是为了学习,用Root进行试验,实际需禁用Root的远程登录
以下主要是对不用密码进行远程登录的配置(密钥认证),其主要原理为:在客户端随机生成私钥-公钥对,然后把客户端的公钥发送到服务器端的/root/.ssh/authorized_keys中,这样以后服务器给客户端发送数据前用客户端的公钥加密,收到数据后的客户端用自己的私钥解密即可。
如果客户端无法解密,即为非法客户端。
以后从client 端登录server时,两者在SSH要联机的信号传递中已经比对过KEY了,不需要输入密码就可登录远程主机,具体步骤如下:
①. 先在client端建立public key and private key两个密钥,利用的命令是:ssh-keygen.
[root@redfeng1 ~]# ssh-keygen -t rsa//这个步骤会产生一个Key pair使用RSA加密
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa)://这里回车
/root/.ssh/id_rsa already exists.//我以前做过试验已经存在那个文件,覆盖即可
Overwrite (y/n)? y //输入y
Enter passphrase (empty for no passphrase): //这里回车Enter same passphrase again: //再回车
Your identification has been saved in /root/.ssh/id_rsa. //这是私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. //这是公钥
The key fingerprint is:
07:67:b2:10:38:7f:2f:23:b4:8a:07:7e:38:fe:0e:7c
root@redfeng1
②. 我们要用超级管理用户进行远程登录,本机的私钥要放在
/root/.ssh/下,本机的公钥Public key要放在服务器端的
root/.ssh/目录中并改名为authorized_keys,的,远程传送:[root@redfeng1 .ssh]# scp id_rsa.pub
192.168.1.241:~/.ssh/authorized_keys
③. linux客户端登录SSH服务器的测试
[root@redfeng1 ~]# ssh 192.168.1.241不必输入密码即可直接登录到redfeng2这台主机.相反把redfeng2的公钥放在redfeng1这台主机相对应的目录就可以互相无密码的访问.
还有一个非常常用的命令scp,它用于在SSH服务器和客户机之间传输文件:
(1)将本地文件复制到远端SSH服务器
#scp 本地文件用户名@主机名:远端目录
(2)将远端文件复制到本地计算机
#scp –r 用户名@主机名:远端文件本地目录。