SSH原理及安装

来源:互联网 发布:人物绘画教程软件下载 编辑:程序博客网 时间:2024/04/27 18:40

SH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

一、从客户端来看,SSH提供两种级别的安全第一种级别是基于口令的安全验证

第一种级别是基于口令的安全验证

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。这个过程如下:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户。
(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。这种方式可能会有别的服务器在冒充真正的服务器,将公钥发送给客户端,客户端就会将密码加密后发送给冒充的服务器,冒充的服务器就可以拿自己的私钥获取到密码,也就是受到“中间人”这种方式的攻击。
值得一说的是当第一次链接远程主机时,会提示您当前主机的”公钥指纹”,询问您是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/.ssh/known_hosts文件中。

第二种级别是基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒,但是相比输入密码的方式来说10秒也不长。

二、ssh正常安装

(1)判断是否安装ssh服务:

ssh localhostssh: connect to host localhost port 22: Connection refused

如上所示,表示没有安装,Ubuntu缺省安装了openssh-client,仅需安装 ssh-server就可以了。

安装ssh-serversudo apt-get install openssh-server安装ssh-clientsudo apt-get install openssh-client

系统将自动进行安装,安装完成以后,先启动服务:

sudo /etc/init.d/ssh start

启动后,可以通过如下命令查看服务是否正确启动

ps -e|grep ssh1673 ?       00:00:00 ssh-agent(eval ssh-agent 启动)4366 ?       00:00:00 sshd

(2)如上表示启动ok。注意,ssh默认的端口是22,可以更改端口,更改后先stop,然后start就可以了。改配置在/etc/ssh/sshd_config下,如下所示:

vi /etc/ssh/sshd_config# Package generated configuration file# See the sshd_config(5) manpage for details# What ports, IPs and protocols we listen forPort 22

把里面的Port参数修改成其他的即可,然后重启SSH服务:

sudo /etc/init.d/ssh restar

最后,应该是连接的时候了。请看如下命令:

ssh 用户名@192.168.158.129(通过ifconfig -a查ip)

三、ssh免密码安装

(1)在主机A、B下生成公钥/私钥对

ssh-keygen -t dsa  -P ''

使用dsa加密算法,-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。在/home/用户/.ssh下有id_rsa和id_rsa.pub

(2)对于A/B,id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

cat id_dsa.pub >> authorized_keys(chmod 600 ~/.ssh/authorized_keys)

(3)单机回环ssh免密码登录测试
即在单机结点上用ssh进行免密码登录,看能否登录成功。登录成功后注销退出,过程如下:

ssh localhost

(4)把A机下的id_rsa.pub复制到B机下为A_dsa.pub,在B机下将A_dsa.pub追加到authorized_keys文件里:

scp /home/A用户名/.ssh/id_dsa.pub B用户名@B主机ip:/home/B用户名/.ssh/A_dsa.pubcat A_dsa.pub >> authorized_keys

(5)主机A就可以免密码访问主机B:

ssh 主机B用户@主机B的ip

(6)小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。

0 0
原创粉丝点击