收藏 分享(赏)

第12章 ssh.ppt

上传人:kuailexingkong 文档编号:1234700 上传时间:2018-06-19 格式:PPT 页数:46 大小:557KB
下载 相关 举报
第12章 ssh.ppt_第1页
第1页 / 共46页
第12章 ssh.ppt_第2页
第2页 / 共46页
第12章 ssh.ppt_第3页
第3页 / 共46页
第12章 ssh.ppt_第4页
第4页 / 共46页
第12章 ssh.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、1,第12章 SSH,2,121 SSH概述,SSH(Secure Shell)是当前非常流行的一款远程安全管理工具软件。 SSH 广泛地应用在安全系统管理、安全文件传输和安全应用连接等方面。利用SSH可以防止密码泄露、数据窃听和中间人攻击等。,3,122 SSH基础示例,三种基础应用: 安全远程登录 scp sftp,4,1221安全远程登录,(1)采用默认用户名登录 以下是从(192.168.1.1)登录到(192.168.1.2)的示例:rootredhat1 # su - user1user1redhat1 $ ssh 192.168.1.2The authenticity of ho

2、st 192.168.1.2 (192.168.1.2) cant be established.RSA key fingerprint is c2:29:5d:79:1e:76:59:fd:0e:b5:97:0c:52:03:7c:7e.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 192.168.1.2 (RSA) to the list of known hosts.user1192.168.1.2s password:Last login: Thu Dec 21

3、10:33:14 2006user1redhat2 $,5,本例局限:只有在两台主机上具有同名用户时才适用。 known_hosts文件功能: 就是用来保存可信任的主机列表的user1redhat1 $ cat /.ssh/known_hosts192.168.1.2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwblq8TLcAJgoH0+8q9gUNXzzU+xb8WBuza5fBheUlL8FyimiXnJm9el1W3f+H8KmdZKM7VQmPBfj8q4DGxMER9MgepsjKP01ZqO7vJb16jTHBHIhVJUCFBDnky8Nd2NQE

4、Ic2tzo+7nVIowazZmip5Rbt6N+W0+eh3VO4lwsyY/8=,6,改进:(2)采用指定的用户名登录可以采用指定用户身份来登录远程主机,示例如下:rootredhat1 # ssh user2192.168.1.2 很明显,本地主机的当前用户是root,登录192.168.1.2时采用的远程主机上的用户user2。,7,1222 scp,scp远程安全复制示例以user2的身份访问远程主机192.168.1.2,并将其主目录下的文件a.tar.gz复制到本地主机的/tmp目录下,将本地主机上的/etc/dhcpd.conf文件复制到远程主机192.168.1.2上use

5、r2用户的主目录中。执行命令如下:$ scp user2192.168.1.2:/a.tar.gz /tmpuser2192.168.1.2s password:a.tar.gz 100% 61KB 61.4KB/s 00:00$ scp /etc/dhcpd.conf user2192.168.1.2:user2192.168.1.2s password:dhcpd.conf 100% 792 0.8KB/s 00:00,8,1223 sftp,SSH软件包中还提供了sftp程序,它是用来替代ftp的工具。 1sftp安全下载示例一以user2的身份登录192.168.1.2并下载文件fla

6、g.jpg到本地主机的/tmp目录下;接着,将本地主机当前用户下的文件samba.txt上传到user2的主目录下。请看以下操作步骤:rootredhat1 # sftp user2192.168.1.2Connecting to 192.168.1.2.user2192.168.1.2s password:sftp ?Available commands:cd path Change remote directory to pathlcd path Change local directory to path,9,sftp lcd /tmpsftp get flag.jpgFetching

7、/home/user2/flag.jpg to flag.jpg/home/user2/flag.jpg 100% 57KB 56.6KB/s 00:00sftp !ls /tmpa.tar.gz flag.jpgsftp lcd /rootsftp put samba.txtUploading samba.txt to /home/user2/samba.txtsamba.txt 100% 477 0.5KB/s 00:00,10,2sftp安全下载示例二 不进入sftp子命令环境,直接下载远程主机192.168.1.2上user2主目录下的文件myicon.gif。命令如下:# sftp

8、user2192.168.1.2:myicon.gifConnecting to 192.168.1.2.user2192.168.1.2s password:Fetching /home/user2/myicon.gif to myicon.gif/home/user2/myicon.gif 100% 7260 7.1KB/s 00:00,11,123 SSH应用示例,1231 采用公钥认证登录SSH采用公钥认证登录示例 本地主机192.168.1.1上的用户user1要以远程主机上用户a2的身份登录到远程主机192.168.1.2上,其间采用公钥作为身份验证。,12,解决方案:SSH是典型

9、的客户机/服务器应用模式,在此将本地主机当做客户机,远程主机当做服务器。以下为具体的操作步骤:(1)在客户端192.168.1.1上操作 1)以user1的身份创建公钥/私钥对。user1redhat1 $ ssh-keygen -t rsa -b 1024Generating public/private rsa key pair.Enter file in which to save the key (/home/user1/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again

10、:Your identification has been saved in /home/user1/.ssh/id_rsa.Your public key has been saved in home/user1/.ssh/id_rsa.pub.The key fingerprint is:02:07:4e:19:0a:ea:37:f7:c6:7a:2f:c0:3f:d9:2a:b6 user1redhat1,13,下面查看一下生成的密钥对:user1redhat1 $ ls .ssh/ -ltotal 12-rw- 1 user1 user1 951 Dec 23 18:23 id_rsa

11、-rw-r-r- 1 user1 user1 223 Dec 23 18:23 id_rsa.pub,14,2)把公钥文件传送给将要登录的服务器。接下来,把刚生成的公钥文件id_rsa.pub发送给服务器192.168.1.2上用户a2的主目录。$ scp .ssh/id_rsa.pub a2192.168.1.2:a2192.168.1.2s password:id_rsa.pub 100% 223 0.2KB/s 00:00接下来要到服务器端执行相应的操作。,15,(2)在服务器端192.168.1.2上操作1)在用户a2的主目录下建立.ssh目录。a2redhat2 $ mkdir -p

12、 .ssha2redhat2 $ chmod 700 .ssh需要注意,目录.ssh的权限必须是700。2)把客户传过来的公钥加入到授权公钥文件中。$ cat id_rsa.pub .ssh/authorized_keys$ chmod 600 .ssh/authorized_keys这样,服务器端也准备完毕,下面进行测试。,16,(3)在客户端进行登录测试user1redhat1 $ ssh a2192.168.1.2Enter passphrase for key /home/user1/.ssh/id_rsa:a2redhat2 $,为什么还要输入密码?,17,1232 主机访问控制,主

13、机访问控制示例在本机redhat1(192.168.1.1)上,设置允许主机192.168.1.2通过SSH登录redhat1,拒绝域中的主机通过SSH登录到redhat1。,18,解决方案:利用/etc/hosts.allow文件的功能来实现,具体步骤如下:1)在服务器redhat1上编辑/etc/hosts.allowrootredhat1 etc# vi /etc/hosts.allow内容如下:sshd:192.168.1.2sshd::deny2)在服务器redhat1上编辑/etc/hosts.rootredhat1 etc# vi /etc/hosts增加如下内容:192.168

14、.1.210 说明:这里利用/etc/hosts文件来强制认为192.168.1.210就是中的主机,这样做完全是为了测试方便。,19,3)在客户机上测试在客户机上登录服务器redhat1,执行如下指令:rootstation210 $ ssh user1192.168.1.1ssh_exchange_identification: Connection closed by remote host说明:从上面的输出可以看出远程主机192.168.1.1拒绝了的SSH登录的请求。测试成功。,20,1233 用户访问控制,1SSH用户访问控制示例在主机(192.168.1.1)上,设置本地用户us

15、er2和user3不能在其他主机上利用SSH连接过来。,21,解决方案:实现方法可以通过编辑SSH服务的配置文件/etc/ssh/sshd_config来设置针对特定用户的访问控制,具体操作过程如下。1)在服务器端即(192.168.1.1)上执行如下操作首先,编辑SSH 服务的配置文件/etc/ssh/sshd_configrootredhat1 ssh #vi /etc/ssh/sshd_config在文件末尾加入如下内容:DenyUsers user2 user3说明:在文件sshd_config中还可以使用AllowUsers、 AllowGroups和 DenyGroups指令来对用

16、户和组进行访问控制。然后,重新启动SSH服务:rootredhat1 ssh# service sshd restart,22,2)在客户端测试在另一台主机redhat2(192.168.1.2)上执行如下命令进行测试:rootredhat2 # ssh user2192.168.1.1user2192.168.1.1s password:Permission denied, please try again.说明:可以看出以user2身份访问192.168.1.1被禁止了,即用户访问控制起作用了,测试成功。,23,2利用PAM实现用户和主机访问控制示例在主机(192.168.1.1)上,设置

17、允许用户user1可以从域中所有主机采用SSH登录到redhat1,但是禁止user1从域中所有主机利用SSH登录到redhat1。,24,解决方案:通过在/etc/pam.d/sshd文件中增加pam_access.so 模块,进而配置/etc/security/access.conf文件来同时实现用户和主机的访问控制。具体步骤如下:1)编辑/etc/pam.d/sshd文件。内容如下:auth required pam_stack.so service=system-authauth required pam_nologin.soaccount required pam_access.so

18、account required pam_stack.so service=system-authpassword required pam_stack.so service=system-authsession required pam_stack.so service=system-auth,25,2)编辑/etc/security/access.conf文件,设置具体的访问控制规则。# vi /etc/security/access.conf在该文件末尾增加如下内容 +:user1:-:user1:3)编辑/etc/hosts文件。增加如下内容:192.168.1.5 ,26,4)在主机

19、上测试。rootclient3 # ssh user1192.168.1.1user1192.168.1.1s password:Permission denied, please try again.user1192.168.1.1s password:,27,5)在上测试。rootredhat5 # ssh user1192.168.1.1user1192.168.1.1s password:user1redhat1 $,28,1234 端口重定向,SSH本地端口重定向示例当从主机(192.168.1.1)访问自己的12345号端口时,将该请求转发到主机(192.168.1.2)的80端口

20、。,29,操作步骤如下:注意:以下操作都是在(192.168.1.1)进行。1)在主机(192.168.1.1)上执行以下命令:rootredhat1 # ssh -L 12345:192.168.1.2:80 user2192.168.1.2user2192.168.1.2s password:Last login: Sat Dec 23 16:37:45 2006 from 192.168.1.1user2redhat2 $,30,2)测试。 在主机(192.168.1.1)上按切换到第二个控制台,接着执行以下命令进行测试:rootredhat1 # elinks http:/localh

21、ost:12345返回页面内容如下: welcome to website of 192.168.1.2,31,1235 X11转发,SSH 实现X11转发示例在主机(192.168.1.1)的Xwindow中执行相应的SSH命令实现,将运行在远程主机(192.168.1.2)上的特定应用程序的输出显示在本地。,32,操作步骤如下:1)(192.168.1.1)上进入Xwindow。rootredhat1 # startx2)在Xwindow中右击桌面open terminal(新建终端),接着输入以下命令:rootredhat1 #ssh -X 192.168.1.2root192.168.

22、1.2s password:Last login: Mon Dec 25 19:02:25 2006 from 192.168.1.1rootredhat2 #,33,图12-1使用参数X来连接远程主机,34,3)在终端中继续输入以下命令:rootredhat2 #xclock&rootredhat2 #xterm&,图12-2应用SSH的X11转发功能,35,1236 ssh-agent,ssh-agent代理功能示例利用ssh-agent的代理功能以user1的身份从主机(192.168.1.1)登录到主机(192.168.1.2)上a2用户的主目录。,36,操作步骤如下:1)复制公钥到远

23、程主机。将主机(192.168.1.1)上用户user1的公钥复制到主机(192.168.1.2)上用户a2的授权文件中。$ scp id_rsa.pub a2192.168.1.2:/.ssh/authorized_keysa2192.168.1.2s password:id_rsa.pub 100% 223 0.2KB/s 00:00,37,2)利用ssh-agent开启一个新的shell。user1redhat1 .ssh$ ssh-agent /bin/shsh-3.00$ 执行私钥代理程序ssh-agentl并启动了一个新的shell。3)执行ssh-add,将当前用户user1的私

24、钥加入到缓存中。sh-3.00$ ssh-addEnter passphrase for /home/user1/.ssh/id_rsa:Identity added: /home/user1/.ssh/id_rsa (/home/user1/.ssh/id_rsa),38,4)登录到远程主机192.168.1.2。sh-3.00$ ssh a2192.168.1.2Last login: Sat Dec 23 18:48:54 2006 from 192.168.1.1a2redhat2 $ 以a2的身份登录到远程主机192.168.1.2,会发现直接登录成功而没有要求输入任何密码!,39,

25、1237 Windows 下的SSH客户端,SSH客户端Putty应用示例 在Windows客户机(192.168.1.251)上通过Putty结合公钥认证机制登录到Linux主机(192.168.1.1)上。,40,操作步骤如下:1)在(192.168.1.1)上为用户user2生成公钥/私钥对。user2redhat1 $ ssh-keygen -t dsa -b 1024Generating public/private dsa key pair.Enter file in which to save the key (/home/user2/.ssh/id_dsa):Created d

26、irectory /home/user2/.ssh.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/user2/.ssh/id_dsa.Your public key has been saved in /home/user2/.ssh/id_dsa.pub.The key fingerprint is:b3:3b:86:cd:9b:44:44:ec:34:2c:bb:a5:19:b9:de:c6 user2red

27、hat1说明:本例中生成公钥/私钥对采用的是dsa算法,并且没有输入保护私钥的密码。,41,2)将用户user2刚生成的公钥复制到自己的授权文件中/.ssh/authorized_keys。$ cp .ssh/id_dsa.pub /.ssh/authorized_keys3)将用户user2刚生成的私钥id_dsa复制到自己的优盘上或通过邮件传送或利用FTP等。,42,4)将优盘上用户user2的私钥文件id_dsa导入Putty。,图12-3 利用puttygen.exe导入私钥,43,5)在Windows客户端上运行putty.exe。,44,图12-5在Putty中输入远程主机IP地址,45,图12-6在Putty中利用公钥认证登录成功,46,124本章小结,OpenSSH的典型应用,包括很有特色的公钥认证机制的应用端口重定向的应用X11转发ssh-agent代理的应用以及SSH的用户和主机访问控制等最后,介绍了Windows下SSH客户端软件Putty的使用方法。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报