您的位置:首页 > 运维架构 > Linux

Linux无密登陆

2016-01-09 20:08 295 查看

基本原理

通过加密解密的认证过程,获取远程机的信任,远程机相信你是安全的之后,就会让你不输入密码就登陆了.

认证过程

本机生成公钥和私钥,将公钥交给远程机.

本机开始登陆远程机,远程机检测到登陆请求.

远程机随机生成一个字符串,并利用本机的公钥加密,将加密的结果返回给本机.

本机获取加密结果,利用私钥解密,并将解密结果发送给远程机.

远程机对比本机解密结果,如果发现答对了.则允许登陆,否则拒绝.

公钥与私钥

公钥: 公开发放,谁都可以获取.

私钥: 仅有一份,私有存储.

公钥加密只有私钥可以解密,私钥加密只有公钥可以解密.

上例中,如果是有害机器是解密不了远程机的加密密文的.因此远程机就可以判断当前请求登陆的机器是否是安全的.

Linux系统操作实例操作

假如有两台机器主机名是NameNode与DataNode.现在NameNode想登陆DataNode.

两台机器上都有用户hadoop,用户目录(/home/hadoop)

NameNode主机上执行命令: ssh-keygen -t rsa

执行上述命令后,NameNode主机/home/hadoop/.ssh下至少有两个文件.

id_rsa 私钥,不能外泄

id_rsa.pub 公钥,随意放.等下把这个交给远程机器

登陆DataNode主机,将公钥追加到/home/hadoop/.ssh/authorized_keys 中.

.ssh文件夹权限必须700, authorized_keys 文件权限必须600

更改文件权限 : chmod 600 authorized_keys

追加公钥到文件中 : cat id_rsa.pub >> authorized_keys

远程操作完毕.在NameNode主机上可以试试可不可以无密登陆了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: