(整理)SSH简介及配置应用
上一篇 / 下一篇 2009-11-08 16:18:28 / 个人分类:测试环境
1.什么是SSH
51Testing软件测试网kv0X j$zU(R'n3L传统的网络服务程序,如:ftp、POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
U~,pg$I1AI7B0+O'e:D:Qc#G&h.`0从前,一个名为Tatu Ylnen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)。 通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,虽然许多人把Secure Shell仅当作Telnet的替代物,但你可以使用它来保护你的网络连接的安全。你可以通过本地或远程系统上的Secure Shell转发其他网络通信,如POP、X、PPP和FTP。你还可以转发其他类型的网络通信,包括CVS和任意其他的TCP通信。另外,你可以使用带TCP包装的Secure Shell,以加强连接的安全性。除此之外,Secure Shell还有一些其他的方便的功能,可用于诸如Oracle之类的应用,也可以将它用于远程备份和像SecurID卡一样的附加认证。51Testing软件测试网4]$GP.Ob~5cG}E
51Testing软件测试网X~[O%i8W2.SSH的工作机制
51Testing软件测试网L1x"^5x s9Er51Testing软件测试网 hrMw ^!b
-TlK nFoF:L0SSH分为两部分:客户端部分和服务端部分。
xq-M'mmvqx051Testing软件测试网5q#h Q:x1m:Z服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。51Testing软件测试网.s,ANL'O _g
51Testing软件测试网;U+[)\~)?)K5\_?客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
b7zLC;G3@r051Testing软件测试网MA5RD6R^3WmK U&N他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。刚才所讲的只是SSH连接的大致过程,SSH 1.x和SSH 2.x在连接协议上还有着一些差异。
7O5z;u#J2O}n0-`;fL%M*yJ8}0SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用# ps -waux | grep sshd来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。
~6yKZY6M9^0uo!M_^ r;LKt ]5]0但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,
't)c~TMR Y)s3lm0\tC5qBjen WW0SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。51Testing软件测试网6y;q'@x9U8FXt\
51Testing软件测试网Si8u q.Sx%^4ds ^S2rwG!E w0K.tYg:p6QL0
3.安装使用OpenSSH
51Testing软件测试网(@&F!ZLo r H;D Ok!QC6[Hq{r0/LzBB0lv,eN!h7}C0这里主要讲的是基于FreeBSD的OpenSSH的配置,其它Unix及派生系统使用OpenSSH的方法大致相同FreeBSD中集成了OpenSSH,在很多Linux的发行版中都没有包括OpenSSH。但是,可以从网络上下载并安装OpenSSH,他是完全免费的。(可以访问OpenSSH的主页http://www.openssh.org)
Vej3HA j*c0e-|0*V"?5nP9h/?g }0生成密钥对
x+t)JXp,r XJC0Ch2d%S Aks0使用ssh-keygen来生成密钥对,比如要用DSA加密算法生成一个4096Bit的密钥对可以输入如下命令(具体参数请参阅man ssh-keygen):51Testing软件测试网.sD h c1K0yt;B:C(~
:U*ZWt)cKzlW0#ssh-keygen -b 4096 -t dsa -k&Z g RL0T }/~1V\ W+i!]V2K1o5Q0 |
51Testing软件测试网F8Q~pr0w4] %ssh-keygen -b 4096 -t dsa51Testing软件测试网K5O"k~%i8h |
Generating public/private dsa key pair.51Testing软件测试网D1e,xRT3Y7q Enter file in which to save the key (/home/fdy84/.ssh/id_dsa): C ySKD0m&K0 |
(密钥对将要存的路径,括号内为默认)51Testing软件测试网C/Q+h6[7Bn;XHi Created directory '/home/fdy84/.ssh'. t+D0nZ2J hN/o0Enter passphrase (empty for no passphrase): $D.Tvb0[\$LH5oxR9t0(输入口令) s5l+}T:gL)mP/`E!z0Enter same passphrase again:51Testing软件测试网&L)yg&O7_ (再次输入口令,千万不要忘记否则就只有从新生成密钥了)51Testing软件测试网;NzKk:VG.t!Sx \ Your identification has been saved in /home/fdy84/.ssh/id_dsa.51Testing软件测试网 w\:W'\2k.` (你的私钥) jI9Y?c/t#Mc0Sq0Your public key has been saved in /home/fdy84/.ssh/id_dsa.pub. r^)CPnN*Pu0(你的公钥)51Testing软件测试网$U%V-y;P;z q v The key fingerprint is:51Testing软件测试网-\OQ9nnQ+q bb:1b:f5:1c:77:62:90:21:59:7e:c6:65:e5:24:c6:e5 fdy84@freebsd51Testing软件测试网8Sp(M.mx*@/\%vX6J0 |
密钥分发
%o.lkY9KLF051Testing软件测试网:bv1kW4u*pYu4n刚才生成了一对密钥,把私钥放在自己的机器上的~/.ssh/目录下并保证访问权限是“-rw-------”(即600)。再把生成的公钥放在要连接的远程主机的~/.ssh/目录下并改名为authorized_keys,并且保证文件除了属主外没有被人修改的权限。51Testing软件测试网%Q6I*W0O$DI
51Testing软件测试网&K