Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830247
  • 博文数量: 247
  • 博客积分: 166
  • 博客等级: 入伍新兵
  • 技术积分: 2199
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-15 16:10
文章分类

全部博文(247)

文章存档

2017年(1)

2015年(63)

2014年(80)

2013年(94)

2012年(9)

分类: LINUX

2014-10-07 22:40:26

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。
有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。

一、生成SSH密钥过程:

1.查看是否已经有了ssh密钥:

 cd ~/.ssh(~表示当前用户的主文件夹,比如假如以user为用户名的用户登录系统则~表示/home/user)
 如果没有密钥则不会有此文件夹,有则备份删除

2.生成密钥:

$ ssh-keygen -t rsa -P ''

-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三次回车,用-P就一次回车。
它在~下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub,其中,id_rsa是私钥文件;对应的id_rsa_pub是公钥文件:

点击(此处)折叠或打开

  1. $ ls /home/lewis/.ssh/
  2. id_rsa id_rsa.pub known_hosts

复制公有密钥至远程主机

1.假设远程主机B的登录用户名为liu,下面建立SSH连接。

点击(此处)折叠或打开

  1. lewis@lewis-laptop:~/.ssh$ ssh 192.168.1.181 -l liu
  2. Password:
  3. Last login: Mon Nov 10 10:44:16 2008 from 192.168.1.155
  4. Have a lot of fun...

2.在远程主机用户liu的主目录下建立.ssh目录,并解除其他人对该文件的所有权限。

点击(此处)折叠或打开

  1. liu@linux-dqw4:~> mkdir .ssh
  2. liu@linux-dqw4:~> chmod 700 .ssh/
  3. liu@linux-dqw4:~> exit
  4. logout
  5. Connection to 192.168.1.181 closed.

3.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。

点击(此处)折叠或打开

  1. [lewis@A ~]$ scp .ssh/id_rsa.pub liu@192.168.1.181:/home/liu/id_rsa.pub
  2. liu@192.168.1.181's password:
  3. id_rsa.pub                                    100%  223     0.2KB/s   00:00
由于还没有免密码登录的,所以要输入密码。

4.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。

点击(此处)折叠或打开

  1. [chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
  2. [chenlb@B ~]$ chmod 600 .ssh/authorized_keys

三、A机登录B机。

点击(此处)折叠或打开

  1. [lewis@A ~]$ ssh 192.168.1.181
  2. The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
  3. RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
  4. Are you sure you want to continue connecting (yes/no)? yes
  5. Warning: Permanently added '192.168.1.181

第一次登录是时要你输入yes。
现在A机可以无密码登录B机了。

四、 测试配置

至此已经完成了SSH密钥对的配置。尝试以用户liu的身份登录该远程主机,可以看到SSH不再询问口令,而是直接允许用户登录到系统中。

点击(此处)折叠或打开

  1. lewis@lewis-laptop:~/.ssh$ ssh 192.168.1.181 -l liu
  2. Last login: Tue Jan 13 00:57:18 2009 from 192.168.1.155
  3. Have a lot of fun...
  4. liu@linux-dqw4:~>


小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)
想让A,B机无密码互登录,那B机以上面同样的方式配置即可。






阅读(725) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~