大家常常都会用到ssh远程登陆linux服务器,但其实ssh可以提供的功能不单如此,还可以实现如文件传输,加密转发等功能。这里就介绍一下:※系统:红旗DC Server 4.11、ssh简介传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。SSH的安全验证是如何工作的从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。2、基础红旗DC Server 4.1默认已经安装好OpenSSH:
The authenticity of host printserver.linuxfly.com (192.168.228.153) cannot be established.RSA key fingerprint is ed:61:e2:ce:40:00:ca:06:93:e8:a4:c2:3a:37:1e:9c.Are you sure you want to continue connecting (yes/no)?除此以外,还可以使用:
在Windows管理Linux服务器时,常使用putty登陆ssh进行远程管理。默认登陆验证方式为密码认证,该方式虽然简单,但每次登陆都要输入一长串的密码,相当麻烦。而且,如果万一把root允许登陆打开,还有可能被强力破解,导致严重的后果。所以,通常建议用密钥登陆验证代替密码方式,即简单,又可靠。一、为什么建议使用密钥登陆通常现在的Linux发行版都使用OpenSSH代替telnet、rsh等明文传输的终端服务。以红旗 DC Server 5.0为例:
点击这里下载文件其中包括:PuTTY、Puttygen、PSCP、Plink、Pagent 等工具。1、使用puttygen制作密钥启动puttygen工具,为兼容OpenSSH密钥,选择“SSH2 RSA”:单击 Generate 按钮,并使用鼠标在“key”框内移动,以获得足够的随机数据供生成密钥使用:※期间,你会看到进度条上面有个提示“Please generate some radomness by moving the mouse over the blank area.”,意思就是让你用鼠标在空白区域随机移动。随着鼠标在空白区域的移动,进度条会一直走下去。停止移动鼠标,进度条也就停止了。所以,那我们要移动鼠标,直到进度条走满为止。完成后的窗口如下:其中:
# mkdir ~/.ssh# chmod 700 ~/.ssh# vi ~/.ssh/authorized_keys# chmod 644 ~/.ssh/authorized_keys※请务必留意:文件和目录的权限问题,用户必须是将要进行认证的用户,而权限必须是0644,也就是禁止其他人对该文件写入信息。(否则,某些有心人把自己的公钥写入这里,他也可以无密码进来了)因为,通常umask是0022或0002的,所以请使用chown和chmod修改为对应的权限咯。4、使用putty使用密钥登陆对putty进行一些简单配置,即可使用密钥登陆Linux服务器。选择Connection-SSH-Auth,在“Private key file for authentication”输入密钥的路径:然后在Connection的“Auth-login username”输入登陆的用户名,例如root:◎Putty 0.60 版本在Connection-Data页内。然后点击Open即可:若一切正常,则可以在session中Save保存配置。三、使用OpenSSH生成密钥密钥既可使用putty生成,也可用OpenSSH生成。1、Linux下生成密钥运行:
引用
# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):<-密钥路径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:17:28:4c:c3:e4:18:d4:c2:31:bd:be:a7:a9:d4:a8:48 root@mail.linuxfly.org2、把公钥信息写入authorized_keys文件中运行: