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

linux下设置ssh无密码登录

2016-09-12 16:30 429 查看
ssh配置  

主机A:10.0.5.199

主机B:10.0.5.198 

需要配置主机A无密码登录主机A,主机B

先确保所有主机的防火墙处于关闭状态。

配置为可以免密码登录本机:

首先查看在“当前用户”文件夹下是否存在.ssh 文件夹(注意ssh前面有“.”,这是一个隐藏文件夹)。输入命令查看此文件夹是否存在。一般来说,安装SSH时会自动在当前用户下创建这个隐藏文件夹,如果没有,可以手创建一个。

下面的配置我是在root超级用户下进行的:

[root@centos1 ~]# ls –a
发现.ssh文件夹已经存在。

接下来输入命令(注意下面命令中不是双引号,是两个单引号):

方法一:用root用户登录,在root目录下执行如下命令:ssh-keygen -t rsa
[root@mycentos ~]# ssh-keygen-t  rsa  --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa文件中。

Generating public/private rsa key pair.
Enter file in which to save the key(/root/.ssh/id_rsa):  & 按回车默认路径 &
Created directory '/root/.ssh'. &创建/root/.ssh目录&
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/root/.ssh/id_rsa.
Your public key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
c6:7e:57:59:0a:2d:85:49:23:cc:c4:58:ff:db:5b:38root@master
通过以上命令将在/root/.ssh/目录下生成id_rsa私钥和id_rsa.pub公钥。进入/root/.ssh目录在namenode节点下做如下配置:
$cp id_rsa.pub authorized_keys 
         这步完成后,正常情况下就可以无密码登录本机了,即ssh localhost,无需输入密码。

 4. $scp authorized_keys
rootr@10.0.5.198:.ssh/   ------把刚刚产生的authorized_keys文件拷一份到主机B上.(可能需要在198机器上ssh登陆   ssh 10.0.5.198)  

          scp  不同的Linux之间copy文件常用方法

 5. $chmod 600 authorized_keys       

     进入主机B的.ssh目录,改变authorized_keys文件的许可权限。

   (4和5可以合成一步,执行:  $ssh-copy-id -i 
root@10.0.5.198 )

可能遇到的问题:

1.进行ssh登录时,出现:”Agent admitted failure to sign using the key“ .

   执行: $ssh-add

   强行将私钥 加进来。

2.如果无任何错误提示,可以输密码登录,但就是不能无密码登录,在被连接的主机上(如A向B发起ssh连接,则在B上)执行以下几步:

  $chmod o-w ~/

   $chmod 700 ~/.ssh


   $chmod 600 ~/.ssh/authorized_keys

3.如果执行了第2步,还是不能无密码登录,再试试下面几个


  $ps -Af | grep agent 

        检查ssh代理是否开启,如果有开启的话,kill掉该代理,然后执行下面,重新打开一个ssh代理,如果没有开启,直接执行下面:

       $ssh-agent

  还是不行的话,执行下面,重启一下ssh服务

       $sudo service sshd restart

4. 执行ssh-add时提示“Could not open a connection to your authenticationh agent”而失败

执行: ssh-agent bash
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: