Centos7下实现免密码登录
一、生成密钥
[root@localhost soft]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:
SHA256:pvR6iWfppGPSFZlAqP35/6DEtGTvaMY64otThWoBTuk root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| . o. |
|.o . . |
|+. o . . o |
| Eo o . + |
| o o..S. |
| o ..oO.o |
| . . ..=*oo |
| ..o *=@+ . |
| .oo=+@+.o.. |
+----[SHA256]-----+
生成之后会在用户的根目录生成一个 “.ssh”的文件夹,进入“.ssh”会生成以下几个文件
[root@localhost ~]# ls -a
. .. anaconda-ks.cfg .ansible .bash_history .bash_logout .bash_profile .bashrc .cache .config .cshrc .scalac .scala_history .ssh .tcshrc .viminfo
进入“.ssh”会生成以下几个文件
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
如果希望ssh公钥生效需满足至少下面两个条件:
- .ssh目录的权限必须是700
- .ssh/authorized_keys文件权限必须是600
二、远程免密登录
1.原理:
- 客户端向服务器端发出连接请求
- 服务器端向客户端发出自己的公钥
- 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端
- 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私 钥依然无法解密(RSA算法)
- 服务器端接收到密文后,用私钥解密,获知通讯密钥
2.常用以下几种方法:
2.1通过ssh-copy-id的方式
[root@localhost ~]# ssh-copy-id -i root@worker1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@worker1's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'root@worker1'"
and check to make sure that only the key(s) you wanted were added.
2.2通过scp将内容写到对方的文件中
[root@test .ssh]# scp -p ~/.ssh/id_rsa.pub root@192.168.91.135:/root/.ssh/authorized_keys
root@192.168.91.135's password:
id_rsa.pub 100% 408 0.4KB/s 00:00
[root@test .ssh]#
[root@test .ssh]#
[root@test .ssh]#
[root@test .ssh]# ssh root@192.168.91.135
Last login: Mon Oct 10 01:27:02 2016 from 192.168.91.133
[root@localhost ~]#
或者
$ scp ~/.ssh/id_rsa.pub root@<remote_ip>:pub_key //将文件拷贝至远程服务器
$ cat ~/pub_key >>~/.ssh/authorized_keys //将内容追加到authorized_keys文件中, 不过要登录远程服务器来执行这条命令
2.3通过Ansible实现批量免密
将需要做免密操作的机器hosts添加到/etc/ansible/hosts下:
[Avoid close]
192.168.91.132
192.168.91.133
192.168.91.134
执行命令进行免密操作
ansible <groupname> -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -k
示例:
[root@test sshpass-1.05]# ansible test -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'" -kSSH password: ----->输入密码192.168.91.135 | success >> {"changed": true, "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArZI4kxlYuw7j1nt5ueIpTPWfGBJoZ8Mb02OJHR8yGW7A3izwT3/uhkK7RkaGavBbAlprp5bxp3i0TyNxa/apBQG5NiqhYO8YCuiGYGsQAGwZCBlNLF3gq1/18B6FV5moE/8yTbFA4dBQahdtVP PejLlSAbb5ZoGK8AtLlcRq49IENoXB99tnFVn3gMM0aX24ido1ZF9RfRWzfYF7bVsLsrIiMPmVNe5KaGL9kZ0svzoZ708yjWQQCEYWp0m+sODbtGPC34HMGAHjFlsC/SJffLuT/ug/hhCJUYeExHIkJF8OyvfC6DeF7ArI6zdKER7D8M0SM WQmpKUltj2nltuv3w== root@localhost.localdomain", "key_options": null, "keyfile": "/root/.ssh/authorized_keys", "manage_dir": true, "path": null, "state": "present", "unique": false, "user": "root"}
参考:
http://www.jb51.net/article/94599.htm
Centos7下实现免密码登录相关推荐
- linux下A免密码登录B
linux下A免密码登录B 现在有两台linux服务器A:192.168.1.111,B:192.168.1.112 1.在A(192.168.123.111)生成公钥私钥对,命令如下: ssh-ke ...
- Centos7下实现免密登录
一.准备环境 1) 用客户端工具(ssh client或者putty)连接到linux服务器.在root用户下输入命令 vi /etc/hosts,用vi编辑hosts文件,如下: 127.0.0.1 ...
- Linux初窥:Linux下SSH免密码登录配置
目录 环境设置(root权限) 1.关闭防火墙和SELinux 2.设置主机名 3.配置hosts 4.配置sshd 秘钥设置 1.创建免密码登录账户 2.生成秘钥 3.将公钥导入到认证文件 4.设置 ...
- linux ssh 下实现免密码登录
1.Linux下生成密钥 ssh-keygen的命令手册,通过"man ssh-keygen"命令: 通过命令"ssh-keygen -t rsa" 生成之后会 ...
- centos7 设置ssh免密码登录配置方法
生产密钥: [root@localhost hadoop]# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file ...
- CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数
密钥登录步骤(免密码登录) ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的 ...
- Git私服客户端免密码登录
原文链接:https://ithinkcry.cn/blog/view/detail/2c9ad8cc66e285ac0166f2204b630003 服务器搭建完GIT后,客户端使用SSH登录,这样 ...
- ssh免密码登录的原理
工作第一天,就需要登录各种服务器,免密码登录无疑能大大的提高工作效率.以前只知道配置,今天了解了下原理. 免密码登录原理 图解,server A免登录到server B: 1.在A上生成公钥私钥. 2 ...
- Hadoop安装的ssh免密码登录步骤
SSH免密码登录 假设Hadoop上有3个节点,分别为linux01,linux02,linux03. 1.在linux01的命令行执行执行以下命令:ssh-keygen -t rsa 直接回车, ...
最新文章
- ASP.NET 3.5 企业级开发
- python怎么控制while循环_Python流程控制之while循环怎么学呢?老男孩Python
- 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.1. Linux与硬件的搭配)
- Andoird --- 安卓 failed to connect to /192.168.0.135 (port 8080) after 1000ms
- 运行tensorflow代码出现dtypes.py:516: FutureWarning: Passing (type, 1) or '1type的解决方法(亲测)
- Tomcat设置网站别名
- 上手Caffe(一)
- linux下截图软件 shutter
- 117. php empty()函数坑
- 笔记本cpu温度高怎么办_夏天面团温度高怎么办?几个技巧让面温立马降下来
- html前端验证代码,前端js+html实现简单验证码
- 点分十进制IP和网络字节序IP互转
- BLP模型(Bell-La Padula模型)
- 计算机函数求各科及格率怎么求,合格率怎么算(计算及格率的方法)
- Windows server 2016中文语言包安装教程
- 阿里高管的思考方式真正厉害在哪?内部员工7000字深度干货
- 动态规划练习(1)--[编程题] 风口的猪-中国牛市
- 计算机减法函数word,Word中减法公式怎么用
- 时间序列分析的基本思路与步骤(入门级,新手必看!!!)
- 评价星星三级样式:好、一般、差
热门文章
- chrony 时间同步详解
- 适用于 Web 开发者的 Atom 编辑器插件
- 使用Blender创造一个Low Polygon 插画
- 生活充满大量非理性,读《思考,快与慢》有感
- 恭喜龙蜥获得中国开源云联盟2022年度中国“最佳开源实践案例”和“杰出开源贡献者”奖项
- 详细的微信小程序讲解
- 教师职称计算机教学,教师计算机职称考试++-教学.docx
- php读取微信收款记录,老板们,如何快速查看微信“收款记录”?简单小技巧轻松Get!...
- logback - 自定义日志脱敏组件,一种不错的脱敏方案
- 【Shell 脚本进阶】使用 bash 命令对 shell 脚本进行调试