在Linux的集群系统中,涉及到多台机器交互的时候,ssh的无密码通信是必须必要的
关于它的配置其实很简单,关于ssh无密码通信是关于同一用户的,不是多用户混淆的
因为要实现A到B,B到A这样的相互操作,所以要在每台机器上在同一用户下做SSH的密码配置。
说起来是很简单,但是难免要遇到一些问题的。
原理概述:
密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程服务器 时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是否是合 法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到 “challenge”之后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性
正常的配置流程
1.ssh-keygen -N '' -f ~/.ssh/id_dsa
2.cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
3.ssh-copy-id -i ~/.ssh/id_dsa.pub 配置机器名
4.提示信息,输入yes【只是配置的时候出现,以后就不会出了】
可能遇到的问题
1.登录不上的时候,很多可能是远程服务器验证码改变了
解决方案:/home/{user}/.ssh/known_hosts 删除那个以前的ssh连接重新ssh就ok了
2.ERROR: No identities found
解决方案:正常配置中第三步骤中 【-i】追加后就OK了
3.SSH配置后,连接仍然需要输入密码
解决方案:/home/{user} , /home/{user}/.ssh/* 的权限设置
一般没有人会去改/home/{user} 的权限的,我比较二,改了给自己弄了这么大个麻烦
********************************************************************************************
-rw-------. 1 smart smart 2807 9月 3 15:10 authorized_keys
-rw-------. 1 smart smart 1675 9月 3 14:59 id_dsa
-rw-r--r--. 1 smart smart 401 9月 3 14:59 id_dsa.pub
-rw-------. 1 smart smart 1675 8月 28 17:21 id_rsa
-rw-r--r--. 1 smart smart 401 8月 28 17:21 id_rsa.pub
-rw-r--r--. 1 smart smart 2370 9月 3 15:45 known_hosts
***********************************************************************************************