使用ssh公钥实现免密码登录

转载 2015年07月07日 10:25:39

http://blog.sina.com.cn/s/blog_4077692e0100qjkp.html


ssh无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。
首先以root账户登陆为例。


1.在A机下生成公钥/私钥对。

[root@A ~]# ssh-keygen -t rsa -''


-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在/root/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub。

一般采用的ssh的rsa密钥:
id_rsa    私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1

2.把A机下的/root/.ssh/id_rsa.pub 复制到B机的/root/.ssh/authorized_keys文件里,先要在B机上创建好 /root/.ssh 这个目录,用scp复制。

[root@A ~]# scp /root/.ssh/id_rsa.pubroot@192.168.1.181:/root/.ssh/authorized_keys
root@
192.168.1.181's password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00


由于还没有免密码登录的,所以要输入一次B机的root密码。

3.authorized_keys的权限要是600!!!

[root@B ~]# chmod 600 /root/.ssh/authorized_keys




4.A机登录B机。

[root@A ~]# ssh -lroot 192.168.1.181
The authenticity of host 
'192.168.1.181 (192.168.1.181)' can't be established.
RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to 
continue connecting (yes/no)? yes
Warning: Permanently added 
'192.168.1.181' (RSA) to the list of known hosts.
Last login: Thu Jul  
3 09:53:18 2008 from root
[root@B 
~]#


第一次登录是时要你输入yes。

现在A机可以无密码登录B机了。

小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

 

 

 

SSH-KeyGen的用法

 

假设 A 为客户机器,B为目标机;

要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa

做法:
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub>> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;

 

 

 

ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
具体方法如下:
ssh-keygen -t rsa
然后全部回车,采用默认值.

这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。

要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。


使用ssh公钥实现免密码登录

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。 有机器A(192.168.1.155),B(192.168.1.181)...
  • u013063153
  • u013063153
  • 2016年12月14日 15:48
  • 1201

Linux 通过rsa公钥实现ssh免密码登录

1、ssh免密码登录root登录192.168.121.212,然后以tomcat帐号ssh远程登录10.14.13.16上,不需要输入密码,需要达到如下效果: [root@dns .ssh]# ...
  • mchdba
  • mchdba
  • 2016年08月12日 17:40
  • 5029

Ubuntu 16.04主机之间ssh免密码登录

我有两台主机分别IP分别是:192.168.48.131和192.168.48.132,现在需要从131的机器上免密码登录到132的机器上 1、分别安装ssh:sudo apt-get install...
  • lisuo1234
  • lisuo1234
  • 2016年08月19日 13:00
  • 3882

ssh免密码+别名登录

免密码登录 首先创建本机的公钥和私钥,使用命令ssh-keygen。 默认生成的公钥名为id_rsa.pub ,私钥名为id_rsa。当然也可以通过参数 -t 来指定名称,如:ssh-keygen ...
  • superbfly
  • superbfly
  • 2017年03月27日 11:47
  • 1858

Linux公钥实现主机间免密登录及文件互传

实现方法 1.假设互信主机在下面 A 10.93.131.1 B 10.93.131.2 C 10.93.131.3 D 10.93.131.4 E 10.93.131.5 F 10.93.131...
  • JW_xueZhiXia
  • JW_xueZhiXia
  • 2017年07月12日 11:27
  • 283

ansible配置private key来免密码登录

最近在作自动化部署发布.读了一下ansible的代码和工作流. 需要部署一些免密码登录的操作. 记录下 现在有两台机器, 一台服务器A安装了ansible, 一台是服务器B需要被操作的. 随便建...
  • rainysia
  • rainysia
  • 2015年11月04日 00:31
  • 16079

Spark分布式搭建(3)——ubuntu下ssh无密码登入(设置ssh公钥认证)

0.前言Spark集群搭建在Hadoop集群之上,而Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止...
  • xummgg
  • xummgg
  • 2016年02月04日 13:51
  • 2399

ansible 配置 linux 主机ssh免密访问

为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码是一个好的方案,通过ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生...
  • wanglei_storage
  • wanglei_storage
  • 2016年10月18日 21:42
  • 3035

Linux学习笔记--SSH免密码登录

需要实现的效果:有两台服务器:"192.168.201.236" 和 "192.168.201.237"需要实现:在服务器"192.168.201.236"上实现ssh无密码连接服务器"192.168...
  • daidaineteasy
  • daidaineteasy
  • 2016年03月22日 17:50
  • 8702

ssh 信任关系无密码登陆,清除公钥,批量脚本

实验机器: 主机a:192.168.2.128 主机b:192.168.2.130 实验目标: 手动建立a到b的信任关系,实现在主机a通过 ssh 192.168.2.130不用输入密码远程...
  • fanren224
  • fanren224
  • 2017年03月18日 09:02
  • 587
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用ssh公钥实现免密码登录
举报原因:
原因补充:

(最多只允许输入30个字)