Linux之SSH密钥认证
1、SSH协议的认识
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
2、通过SSH管理远程服务器
通过SSH协议,用户可以通过终端机访问和使用远程linux服务器,ssh的端口为22。但每次进行连接都要输入密码。如果管理几台到十几台集群,那可以应付的的过来。如果集群增加了几百,上千台。那么使用SSH管理起来就不方便了。所以SSH有没有更简便的方法呢?有的,在linux集群中,由一台管理机通过SSH管理其它的远程linux服务器,这种方法被称为SSH密钥认证管理服务器。原理如下图:

3、服务器的布署和划分
管理机:172.16.1.61 m01
NFS服务器: 172.16.1.31 nfs01
WEB服务器: 172.16.1.8 web01
4、首先检查管理机和被管理机上的SSH是否已经安装和启用
管理机m01:

NFS服务器nfs01:

WEB服务器web01:

4、首先在m01服务器上,创建密钥对:公钥和私钥
[root@m01 ~]# ssh-keygen -t dsa
如下图所示:提示输入是否确认,所有的提示按Enter键.

查看是否密钥创建成功,密钥生成后,保存在/root/.ssh/下,这是一个隐藏目录。
其中:id_dsa是私钥,id_dsa.pub是公钥

由上图所见我们已经创建密钥成功
5、把公钥拷贝到所有被管理机中
将公钥拷贝到nfs01服务器中,使用命令ssh-copy-id 。因为我更改过nfs01的ssh端口,由端口22变为端口52113.所以要添加"-p 52113"。拷贝到web01也是同理
[root@m01 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub "-p 52113 oldboy@172.16.1.31"
如下图提示,第一次拷贝要输入确认yes和oldboy帐号的密码。

查看nfs01上面是否拷贝成功,拷贝的文件在oldboy家目录下的隐藏目录.ssh下

6、测试
a.在m01上远程执行nfs01上的命令
[root@m01 ~]# ssh -p oldboy@172.16.1.31 "/sbin/ifconfig eth0"

b.从m01上拷贝文件到nfs01上

查看nfs01上是否拷贝过去

7、总结
a.SSH创建密钥后,公钥发送给各个被管理的服务器中。
b.除了第一次发送公钥后,需要密码,其他远程操作不再需要密码。
另外:每次连接一个新的服务器都要手动确认和输入密码,也是不一般的麻烦。那有没有一种方法不需要手动确认和输入密码?有的,那就是expect程序。
关于expect请看我的下一篇博文.
Linux之SSH密钥认证的更多相关文章
- Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录
1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...
- Mac下配置远程Linux 服务器SSH密钥认证自动登录
1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...
- 转载 :配置ssh密钥认证自动登录
原文地址 :https://segmentfault.com/a/1190000000481249 在客户端来看,SSH提供两种级别的安全验证.[摘自wikipedia] 第一种级别(基于密码的安全验 ...
- Linux配置SSH公钥认证与Jenkins远程登录进行自动发布
公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密:另一个称为密钥(private key),只有拥有者才能看到,用于解密. 在使用jenkins ...
- [转] SSH 密钥认证机制
使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Any ...
- Linux之sshkey密钥认证实战
在实际的生产环境中,经常会用到sshkey密钥认证实行数据分发数据等操作,还可以批量操作内网服务器,实行免密认证进行推送分发数据. 1.环境查看 分发服务器 节点服务器 2.服务器添加系统账号 3.生 ...
- linux ssh密钥认证, 免密码登陆
1. 客户端生成密钥 # mkdir ~/.ssh # chmod ~/.ssh # cd ~/.ssh 生成RSA密钥 # ssh-keygen -t rsa (然后连续三次回车) 2. 把公钥传到 ...
- linux SecureCRT ssh key认证登陆
转自:http://blog.chinaunix.net/uid-20639775-id-3207171.html 通过SecureCRT创建key登录认证 一.生成公钥/密钥对 使用SecureCR ...
- 配置Linux的SSH双重认证
背景:双因子认证(简称:2FA,以下简称2FA),在这里其为SSH的第二重认证.2FA指的是密码以及实物(信用卡.SMS手机.令牌或指纹等生物标志)两种条件对用户进行认证的方法.通过两种不同的认证程序 ...
随机推荐
- mysql进阶(二)索引简易教程
Mysql索引简易教程 基本概念 索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容.在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找. ...
- AngularJS进阶(二)AngularJS路由问题解决
AngularJS路由问题解决 遇到了一个棘手的问题:点击优惠详情时总是跳转到药店详情页面中去.再加一层地址解决了,但是后来发现问题还是来了: Could not resolve 'yhDtlMain ...
- 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)
<UNIX网络编程 卷1>的源码可以从www.unpbook.com下载得到.解压之后的目录为unpv13e. 详细步骤 编译 进入unpv13e目录,按如下步骤编译: ./configu ...
- SpannableString 给TextView添加不同的显示样式
TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色.字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置 myT ...
- Learning ROS for Robotics Programming Second Edition学习笔记(九) indigo Gazebo rviz slam navigation
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 书中三维环境gazebo,slam的仿真例子 --$ r ...
- linux服务搭建----ftp与ftp yum源搭建
ftp服务 如果没有ftp yum -y install vsftpd (前提是你在有yum源的情况下才可以使用这条命令) service vsftpd resta ...
- Leetcode_203_Remove Linked List Elements
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45868027 Remove all elements fr ...
- 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
准备工作: 电脑上安装好JDK.下载smali和baksmali.下载apktools.要修改的ROM.adb工具(可选) 注:由于本教程面向的对象为有一定ROM修改基础的兄弟,所以对于如何使用电脑, ...
- 高通 android平台LCD驱动分析
目前手机芯片厂家提供的源码里包含整个LCD驱动框架,一般厂家会定义一个xxx_fb.c的源文件,注册一个平台设备和平台驱动,在驱动的probe函数中来调用register_framebuffer(), ...
- Prefix tree
Prefix tree The trie, or prefix tree, is a data structure for storing strings or other sequences in ...