ImageVerifierCode 换一换
你正在下载:

ssh.docx

[预览]
格式:DOCX , 页数:11 ,大小:24.85KB ,
资源ID:3866789      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3866789.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ssh.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ssh.docx

1、sshSSH打造Windows 2000和FreeBSD的安全通道许多网络程序,如Telnet、RSH、Rlogin,FTP都是用明文传送口令和信息的,所以就可利用任何连接到网络上的计算机监听这些程序和服务器之间的通信,并获取口令和信息。而Telnet是我们日常生活中必不可少的服务,它这么不安全,怎么办?SSH可以替代它。本文将介绍使用SSH2其中两种认证模式:Password和Public key来实现Windows 2000和FreeBSD之间的安全通道。 小知识:SSH是英文Secure Shell的简写形式。通过使用SSH,可以把Telnet的会话进行加密,也可以为FTP等网络程序提供

2、一个安全通道,不用担心被别有用心的人Sniffer,并且SSH的数据传输是经过压缩的,这样也能够加快传输速率。SSH的当前协议版本号为2,一共有六种认证模式,分别是Password、Public key、Rhosts、RhostsRSA、RSA和ChallengeResponse。先介绍一下实验的环境:Windows 2000 server,IP:192.168.0.1;FreeBSD 4.9 Release,IP:192.168.0.3,它们之间用10M以太网连接。准备:先在Windows 2000上下载SSH Secure Shell软件,搜索引擎能够找到许多下载的链接,这里就不给出了。该

3、软件有两个组件,SSH Secure Shell client和SSH Secure File Transfer Client,本文都会用到。Password模式的实现在Windows 2000下打开SSH Secure Shell client,使用Password模式相当简单,FreeBSD模式是开启SSH2的,故只要点击Quick Connection按钮。输入目标IP,用户名以及认证模式,这里填的是“von”这个用户,隶属于Wheel组。在下拉列表中选Password,目标端口默认为22,不用去改。填完之后点Connect,会要求输入密码。小提示:SSH默认是不允许ROOT帐户直接进行

4、远程登陆的,如果一定要使用ROOT登陆,可以将FreeBSD机的/etc/ssh/sshd_config文件里的PermitROOTLogin设置为yes。一般的方法是用Wheel组里的用户登陆,成功之后再SU成ROOT。输入正确的用户密码,OK,连接。看,远程登陆成功。Password模式的优点是简单,但是它不够安全。有的人说因为它是明文传输的,其实这种说法是不正确的。SSH不管是Password还是Public key,都是加密的,都无法对其进行嗅探。Password的不安全因素在于:如果有人知道你的口令,那它就可以在任何一台连上网的计算机上冒充你进行登陆。要避免这样的安全隐患,请在Fre

5、eBSD机的/etc/ssh/sshd_config文件下将PasswordAuthentication设置为no,这样所有的登陆都必须使用Public key验证。Public key的实现顾名思义,公钥私钥模式。打开SSH Secure Shell client,点选Edit菜单下的Settings项, 点左边菜单的User Keys,再点击Generate New Keypair来创建新的密钥对,点下一步后,这里就以1024位的DSA算法为例,按“下一步”,等待数秒后,填写密钥的名称,所属团体以及片语,一会儿我们通过Private/Public key 模式连接的时候需要输入片语。到这里

6、,密钥对已经生成了。默认放在C:Documents and SettingsAdministratorApplication DataSSHUserKeys目录下。现在我们要使用SSH Secure File Transfer Client了。用它来替代不安全的FTP将公钥传输到FreeBSD上的指定目录中去。小提示:片语最好与FreeBSD下的用户密码不同,这样即使他人知道你FreeBSD的用户密码,且使用这台拥有密钥的计算机进行远程登陆,也无法成功登陆,因为他并不知道你的片语。现在由于Public key还没实现,暂且使用Password模式来传输。同样会弹出个密码框,输入正确的密码,就连

7、上了。选取Operation菜单的Upload项,将C:Documents and SettingsAdministratorApplication DataSSHUserKeyswin.pub,也就是公钥,传上去,默认放在Von用户的主目录/home/von下。FreeBSD下的设置1. 使用帐户von登陆系统,并在/home/von下新建.ssh目录(看仔细,“ssh”前有个点):$cd /home/von$mkdir .ssh2. 将win.pub移动到.ssh目录下:$mv win.pub .ssh/3. 在.ssh目录下执行:$ssh-keygen -X -f win.pub aut

8、horized_keys #authorized_keys文件会自动建立现在可以使用Public key模式进行远程登陆了,打开SSH Secure Shell client,点Quick。在Authentication的下拉列表中选择Public Key,按Connect,在Passphrase中输入刚才填写的片语,OK,连接成功。至此,安全,快速的SSH通道建立了,以后再也不用担心数据传输会出现问题了LeadBBS.COM 极速ASP论坛 LeadBBS官方论坛 技术与交流 PHP学习 【资料】SSH入门教程 【资料】SSH入门教程 Xinsoft,2003-12-19 02:32:36S

9、SH使用指南 介绍SSH 什么是SSH? 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。 SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输

10、的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。 最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。 SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的

11、服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。 SSH的安全验证是如何工作的 从客户端来看,SSH提供两种级别的安全验证。 第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。 第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求

12、之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。 用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。 第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。 安装并测试OpenSSH 因为受到美国法律的限制,在很多Linux的发行版中都没有包括OpenSSH。但是,可

13、以从网络上下载并安装OpenSSH(有关OpenSSH的安装和配置请参考: 安装完OpenSSH之后,用下面命令测试一下: ssh -l your accountname on the remote host address of the remote host 如果OpenSSH工作正常,你会看到下面的提示信息: The authenticity of host hostname cant be established. Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52. Are you sure

14、you want to continue connecting (yes/no)? OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。 然后,SSH提示你输入远程主机上你的帐号的口令。输入完口令之后,就建立了SSH连接,这之后就可以象使用telnet那样使用SSH了。 SSH的密匙 生成你自己的密匙对 生成并分发你自己的密匙有两个好处: 1) 可以防止“中间人”这种攻击方式 2) 可以只用一个口令就登录到所有你想

15、登录的服务器上 用下面的命令可以生成密匙: ssh-keygen 如果远程主机使用的是SSH 2.x就要用这个命令: ssh-keygen d 在同一台主机上同时有SSH1和SSH2的密匙是没有问题的,因为密匙是存成不同的文件的。 ssh-keygen命令运行之后会显示下面的信息: Generating RSA keys: .ooooooO.ooooooO Key generation complete. Enter file in which to save the key (/home/user/.ssh/identity): 按下ENTER就行了 Created directory /h

16、ome/user/.ssh. Enter passphrase (empty for no passphrase): 输入的口令不会显示在屏幕上 Enter same passphrase again: 重新输入一遍口令,如果忘记了口令就只能重新生成一次密匙了 Your identification has been saved in /home/user/.ssh/identity. 这是你的私人密匙 Your public key has been saved in /home/user/.ssh/identity.pub. The key fingerprint is: 2a:dc:71

17、:2f:27:84:a2:e4:a1:1e:a9:63:e2:fa:a5:89 userlocal machine “ssh-keygen d”做的是几乎同样的事,但是把一对密匙存为(默认情况下)“/home/user/.ssh/id_dsa”(私人密匙)和“/home/user/.ssh/id_dsa.pub”(公用密匙)。 现在你有一对密匙了:公用密匙要分发到所有你想用ssh登录的远程主机上去;私人密匙要好好地保管防止别人知道你的私人密匙。用“ls l /.ssh/identity”或“ls l /.ssh/id_dsa”所显示的文件的访问权限必须是“-rw-”。 如果你怀疑自己的密匙已经

18、被别人知道了,不要迟疑马上生成一对新的密匙。当然,你还要重新分发一次公用密匙。 分发公用密匙 在每一个你需要用SSH连接的远程服务器上,你要在自己的家目录下创建一个“.ssh”的子目录,把你的公用密匙“identity.pub” 拷贝到这个目录下并把它重命名为“authorized_keys”。然后执行: chmod 644 .ssh/authorized_keys 这一步是必不可少的。如果除了你之外别人对“authorized_keys”文件也有写的权限,SSH就不会工作。 如果你想从不同的计算机登录到远程主机,“authorized_keys”文件也可以有多个公用密匙。在这种情况下,必须在

19、新的计算机上重新生成一对密匙,然后把生成的“identify.pub”文件拷贝并粘贴到远程主机的“authorized_keys”文件里。当然在新的计算机上你必须有一个帐号,而且密匙是用口令保护的。有一点很重要,就是当你取消了这个帐号之后,别忘了把这一对密匙删掉。 配置SSH 配置客户端的软件 OpenSSH有三种配置方式:命令行参数、用户配置文件和系统级的配置文件(“/etc/ssh/ssh_config”)。命令行参数优先于配置文件,用户配置文件优先于系统配置文件。所有的命令行的参数都能在配置文件中设置。因为在安装的时候没有默认的用户配置文件,所以要把“/etc/ssh/ssh_confi

20、g”拷贝并重新命名为“/.ssh/config”。 标准的配置文件大概是这样的: lots of explanations and possible options listed # Be paranoid by default Host * ForwardAgent no ForwardX11 no FallBackToRsh no 还有很多选项的设置可以用“man ssh”查看“CONFIGURATION FILES”这一章。 配置文件是按顺序读取的。先设置的选项先生效。 假定你在上有一个名为“bilbo”的帐号。而且你要把“ssh-agent”和“ssh-add”结合起来使用并且使用数据

21、压缩来加快传输速度。因为主机名太长了,你懒得输入这么长的名字,用“fbc”作为“”的简称。你的配置文件可以是这样的: Host *fbc HostName User bilbo ForwardAgent yes Compression yes # Be paranoid by default Host * ForwardAgent no ForwardX11 no FallBackToRsh no 你输入“ssh fbc”之后,SSH会自动地从配置文件中找到主机的全名,用你的用户名登录并且用“ssh-agent”管理的密匙进行安全验证。这样很方便吧! 用SSH连接到其它远程计算机用的还是“pa

22、ranoid(偏执)”默认设置。如果有些选项没有在配置文件或命令行中设置,那么还是使用默认的“paranoid”设置。 在我们上面举的那个例子中,对于到的SSH连接:“ForwardAgent”和“Compression”被设置为“Yes”;其它的设置选项(如果没有用命令行参数)“ForwardX11”和“FallBackToRsh”都被设置成“No”。 其它还有一些需要仔细看一看的设置选项是: l CheckHostIP yes 这个选项用来进行IP地址的检查以防止DNS欺骗。 l CompressionLevel 压缩的级别从“1”(最快)到“9”(压缩率最高)。默认值为“6”。 l Fo

23、rwardX11 yes 为了在本地运行远程的X程序必须设置这个选项。 l LogLevel DEBUG 当SSH出现问题的时候,这选项就很有用了。默认值为“INFO”。 配置服务端的软件 SSH服务器的配置使用的是“/etc/ssh/sshd_config”配置文件,这些选项的设置在配置文件中已经有了一些说明而且用“man sshd”也可以查看帮助。请注意OpenSSH对于SSH 1.x和2.x没有不同的配置文件。 在默认的设置选项中需要注意的有: l PermitRootLogin yes 最好把这个选项设置成“PermitRootLogin without-password”,这样“ro

24、ot”用户就不能从没有密匙的计算机上登录。把这个选项设置成“no”将禁止“root”用户登录,只能用“su”命令从普通用户转成“root”。 l X11Forwarding no 把这个选项设置成“yes”允许用户运行远程主机上的X程序。就算禁止这个选项也不能提高服务器的安全因为用户可以安装他们自己的转发器(forwarder),请参看“man sshd”。 l PasswordAuthentication yes 把这个选项设置为“no”只允许用户用基于密匙的方式登录。这当然会给那些经常需要从不同主机登录的用户带来麻烦,但是这能够在很大程度上提高系统的安全性。基于口令的登录方式有很大的弱点。

25、 l # Subsystem /usr/local/sbin/sftpd 把最前面的号去掉并且把路径名设置成“/usr/bin/sftpserv”,用户就能使用“sftp”(安全的FTP)了(sftpserv在sftp软件包中)。因为很多用户对FTP比较熟悉而且“scp”用起来也有一些麻烦,所以“sftp”还是很有用的。而且2.0.7版本以后的图形化的ftp工具“gftp”也支持“sftp”。 拷贝文件 用“scp”拷贝文件 SSH提供了一些命令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个“scp”命令。 假定你想把本地计算机当前目录下的一个名为“dumb

26、”的文件拷贝到远程服务器上你的家目录下。而且你在远程服务器上的帐号名为“bilbo”。可以用这个命令: scp dumb bilbo:. 把文件拷贝回来用这个命令: scp bilbo:dumb . “scp”调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。 如果在你的“/.ssh/config”文件中已经为做了这样的配置: Host *fbc HostName User bilbo ForwardAgent yes 那么你就可以用“fbc”来代替“bilbo”,命令就简化为“scp dumb fbc:.”。 “scp”假定你在远程主机上的家目录为你的工作目录。如果你使用相对目录

27、就要相对于家目录。 用“scp”命令的“-r”参数允许递归地拷贝目录。“scp”也可以在两个不同的远程主机之间拷贝文件。 有时候你可能会试图作这样的事:用SSH登录到上之后,输入命令“scp local machine:dumb .”想用它把本地的“dumb”文件拷贝到你当前登录的远程服务器上。这时候你会看到下面的出错信息: ssh: secure connection to local machine refused 之所以会出现这样的出错信息是因为你运行的是远程的“scp”命令,它试图登录到在你本地计算机上运行的SSH服务程序所以最好在本地运行“scp”除非你的本地计算机也运行SSH服务程

28、序。 用“sftp”拷贝文件 如果你习惯使用ftp的方式拷贝文件,可以试着用“sftp”。“sftp”建立用SSH加密的安全的FTP连接通道,允许使用标准的ftp命令。还有一个好处就是“sftp”允许你通过“exec”命令运行远程的程序。从2.0.7版以后,图形化的ftp客户软件“gftp”就支持“sftp”。 如果远程的服务器没有安装sftp服务器软件“sftpserv”,可以把“sftpserv”的可执行文件拷贝到你的远程的家目录中(或者在远程计算机的$PATH环境变量中设置的路径)。“sftp”会自动激活这个服务软件,你没有必要在远程服务器上有什么特殊的权限。 用“rsync”拷贝文件

29、“rsync”是用来拷贝、更新和移动远程和本地文件的一个有用的工具,很容易就可以用“-e ssh”参数和SSH结合起来使用。“rsync”的一个优点就是,不会拷贝全部的文件,只会拷贝本地目录和远程目录中有区别的文件。而且它还使用很高效的压缩算法,这样拷贝的速度就很快。 用“加密通道”的ftp拷贝文件 如果你坚持要用传统的FTP客户软件。SSH可以为几乎所有的协议提供“安全通道”。FTP是一个有一点奇怪的协议(例如需要两个端口)而且不同的服务程序和服务程序之间、客户程序和客户程序之间还有一些差别。 实现“加密通道”的方法是使用“端口转发”。你可以把一个没有用到的本地端口(通常大于1000)设置成

30、转发到一个远程服务器上,然后只要连接本地计算机上的这个端口就行了。有一点复杂是吗? 其实一个基本的想法就是,转发一个端口,让SSH在后台运行,用下面的命令: ssh userremote host -f -L 1234:remote host:21 tail -f /etc/motd 接着运行FTP客户,把它设置到指定的端口: lftp -u username -p 1234 localhost 当然,用这种方法很麻烦而且很容易出错。所以最好使用前三种方法。 用SSH设置“加密通道” “加密通道”的基础知识 SSH的“加密通道”是通过“端口转发”来实现的。你可以在本地端口(没有用到的)和在远程服务器上运行的某个服务的端口之间建立“加密通道”。然后只要连接到本地端口。所有对本地端口的请求都被SSH加密并且转发到远程服务器的端口。当然只有远程服务器上运行SSH服务器软件的时候“加密通道”才能工作。可以用下面命令检查一些远程服务器是否运行SSH服务: telnet full nam

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1