SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为创建在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登陆会话和其余网络服务提供安全性的协议。利用 SSH 协议能够有效防止远程管理过程当中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其余操做平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎全部UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其余平台,均可运行SSH。linux
经过SSH协议,用户能够经过终端机访问和使用远程linux服务器,ssh的端口为22。但每次进行链接都要输入密码。若是管理几台到十几台集群,那能够应付的的过来。若是集群增长了几百,上千台。那么使用SSH管理起来就不方便了。因此SSH有没有更简便的方法呢?有的,在linux集群中,由一台管理机经过SSH管理其它的远程linux服务器,这种方法被称为SSH密钥认证管理服务器。原理以下图:git
管理机:172.16.1.61 m01web
NFS服务器: 172.16.1.31 nfs01安全
WEB服务器: 172.16.1.8 web01服务器
管理机m01:网络
NFS服务器nfs01:ssh
WEB服务器web01:测试
[root@m01 ~]# ssh-keygen -t dsa
以下图所示:提示输入是否确认,全部的提示按Enter键.spa
查看是否密钥建立成功,密钥生成后,保存在/root/.ssh/下,这是一个隐藏目录。3d
其中:id_dsa是私钥,id_dsa.pub是公钥
由上图所见咱们已经建立密钥成功
将公钥拷贝到nfs01服务器中,使用命令ssh-copy-id 。由于我更改过nfs01的ssh端口,由端口22变为端口52113.因此要添加"-p 52113"。拷贝到web01也是同理
[root@m01 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub "-p 52113 oldboy@172.16.1.31"
以下图提示,第一次拷贝要输入确认yes和oldboy账号的密码。
查看nfs01上面是否拷贝成功,拷贝的文件在oldboy家目录下的隐藏目录.ssh下
a.在m01上远程执行nfs01上的命令
[root@m01 ~]# ssh -p 52113 oldboy@172.16.1.31 "/sbin/ifconfig eth0"
b.从m01上拷贝文件到nfs01上
查看nfs01上是否拷贝过去
a.SSH建立密钥后,公钥发送给各个被管理的服务器中。
b.除了第一次发送公钥后,须要密码,其余远程操做再也不须要密码。
另外:每次链接一个新的服务器都要手动确认和输入密码,也是不通常的麻烦。那有没有一种方法不须要手动确认和输入密码?有的,那就是expect程序。
关于expect请看个人下一篇博文.