zoukankan      html  css  js  c++  java
  • ssh免密登录

    背景:搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录。

      在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用了。

      " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。

    1. 确认系统已经安装了SSH。

      rpm –qa | grep openssh

      rpm –qa | grep rsync

           -->出现如下图的信息表示已安装

      假设没有安装ssh和rsync,可以通过下面命令进行安装。

      yum install ssh -->安装SSH协议

      yum install rsync -->rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件

      service sshd restart -->启动服务

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    2.  

      生成秘钥对

      ssh-keygen –t rsa –P ''  -->直接回车生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。

      注意:如果不使用这个命令ssh-keygen –t rsa –P '' ,不加参数输入密码使用这个命令(ssh-keygen –t rsa),那么注意在要求输入密码时不要输入,直接回车!!

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    3.  

      把id_rsa.pub追加到授权的key里面去。

      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    4.  

      修改授权key的权限

      chmod 600 ~/.ssh/authorized_keys

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    5.  

      修改SSH配置文件

      su -  -->登陆root用户修改配置文件

      vim /etc/ssh/sshd_config -->去掉下图中三行的注释

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    6.  

      测试连接

      service sshd restart -->重启ssh服务,

      exit   -->退出root用户,回到普通用户

      ssh localhost -->连接普通用户测试

      这只是配置好了单机环境上的SSH服务,要远程连接其它的服务器,接着看下面。

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    7.  

      现在秘钥对已经生成好了,客户端SSH服务也已经配置好了,现在就把我们的钥匙(公钥)送给服务器。

      scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/  -->将公钥复制到远程服务器的~/目录下

      如: scp ~/.ssh/id_rsa.pub hadoop@192.168.1.134:~/

      可以看到我们复制的时候需要我们输入服务器的密码,等我们把SSH配置好之后这些步骤就可以不用输入密码了。

      菜鸟Linux系列:[4]SSH免密码登陆远程服务器
    8.  

      上一步把公钥发送到192.168.1.134服务器上去了,我们去134机器上把公钥追加到授权key中去。(注意:如果是第一次运行SSH,那么.ssh目录需要手动创建,或者使用命令ssh-keygen -t rsa生成秘钥,它会自动在用户目录下生成.ssh目录。特别注意的是.ssh目录的权限问题,记得运行下chmod 700 .ssh命令)

      在134机器上使用命令:

      cat ~/id_rsa.pub >> ~/.ssh/authorized_keys  -->追加公钥到授权key中

      rm ~/id_rsa.pub  -->保险起见,删除公钥

      同样在134机器上重复第四步和第五步,

      service sshd restart  -->重启ssh服务

    9.  

      回到客户机来,输入:

      ssh 192.168.1.134   -->应该就能直接连接服务器咯。

      ssh db2inst1@192.168.2.1  etl远程用db2inst1用户登录测试是否可以连通。

      注意:两边用户authorized_keys里面都需要有对方的公钥。

  • 相关阅读:
    使用Atlas简化客户端Ajax编程(Atlas 介绍)
    CheckBoxList 的数据绑定及数据获取
    ASP.NET 中数据库操作初步
    弹出对话框的同时保持页面的显示
    .net中常用的命名空间解释
    Atlas—微软的Ajax工具包(初学者必看)
    链接数据库类 DB.CS
    顶贴个性图片生成
    推荐10多个优秀的设计资源的网站
    Linux基本命令大全
  • 原文地址:https://www.cnblogs.com/xiaojianblogs/p/6181564.html
Copyright © 2011-2022 走看看