ssh免登陆配置

来源:互联网 发布:小米5x拍照怎么样知乎 编辑:程序博客网 时间:2024/04/30 13:12

本博文为原创,转载请注明出处 http://blog.csdn.net/lux_veritas/article/details/8255613

pre.网上有很多帖子说明如何配置免登陆,却不说明个中缘由,这里简单介绍一下ssh的原理

       以节点A和B两个节点为例,节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥声明到服务端B上的authorized_keys文件中。当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入口令。

【ssh-client】为需要从此处远程登录到其他机器的操作机,即节点A

【ssh-server】被远程登录的机器。即节点B

 

全程操作都是在【ssh-client】上的:

1.生成公私钥对:

其中,ida_rsa_gc13 为自己起的名字。密码默认设置为空就可以。
此处重命名密钥文件是为了避免过多的密钥文件与主rsa密钥冲突或者发生混乱。不过,此处是个双刃剑,如果声明了新的密钥文件,则必须在config文件的identityfile选项指明用于解密的私钥文件,(如下文描述),否则免登陆设置不成功,每次仍重新提醒输入ssh-server的登陆口令

2.生成密钥对后要马上查看其权限:
默认私钥为只对自己可读写,公钥为自己可读写,其他用户组可读。
但是不知为什么很多人都要修改公钥的权限,否则无法实现免登陆,姑且暂时修改一下,有待考证。


3.将生成的密钥对拷贝到/home/yourusername/.ssh/ 目录下,yourusername为你的当前用户名称。
此处我的工作目录已经是/home/guohongwei/


4.接下来将公钥发布到ssh-server上,可以采用多种方式,推荐通过ssh-copy-id命令

当然也可以通过首先将公钥文件(即后缀名为.pub的文件)拷贝到ssh-server上,再通过一些文本写入命令将公约文件的内容写入authorized_keys文件中

5.接下来要修改ssh的配置文件了,即修改配置文件:.ssh/config (如果没有就创建一个)

此处的 identityfile非常之重要,它声明的是你的解密密钥,所以一定要是用keygen生成的密钥对中的除公钥的另一个。

大功告成,我们测试一下: