需求描述

  平时使用ssh的时候,一般使用ssh都是通过用户名和密码登录到远程主机上,

  然后执行一些命令,远程登录过程中,需要手动的输入密码(提示输入密码之后),

  但是,在实际的应用过程中,涉及到让脚本后台或者自动执行登录到远程主机来

  执行一些命令,也就是要省略输入密码的过程即免密自动登录到远程主机。

实现过程

1.在ssh的客户端生成认证密钥,执行以下命令创建ssh密钥

[mysql@redhat6 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mysql/.ssh/id_rsa):
Created directory '/home/mysql/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mysql/.ssh/id_rsa.
Your public key has been saved in /home/mysql/.ssh/id_rsa.pub.
The key fingerprint is:
::ed::0d::d1::c9:c8:f6:f7:a6:a1:2b:ee mysql@redhat6
The key's randomart image is:
+--[ RSA ]----+
| ..+.o |
| +.= |
| .+. . |
| o =... |
| o + o.S. |
| . + . o |
| o . + |
| ... . |
| oE... |
+-----------------+

备注:通过-t参数指定加密算法类型为RSA,命令执行过程中需要输入内容时,一路回车就可以了,无需自行输入任何内容。

2.已经生成了ssh的密钥

[mysql@redhat6 ~]$ cd .ssh/
[mysql@redhat6 .ssh]$ ls
id_rsa id_rsa.pub

备注:

  id_rsa.pub是生成的公钥,id_rsa是生成的私钥。

  公钥id_rsa.pub必须要加入到远程服务~/.ssh/authorized_keys文件中,这台远程的服务器也就是我们想从当前主机自动登录到的那台服务器。

3.将生成的公钥的内容输入到远程主机~/.ssh/authorized_keys文件中

[mysql@redhat6 .ssh]$ ssh oracle@standby "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
The authenticity of host 'standby (192.168.53.12)' can't be established.
RSA key fingerprint is d2:b6:f9::::f8:3c:2c:dd::::2a::e3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'standby,192.168.53.12' (RSA) to the list of known hosts.
oracle@standby's password:

备注:根据提示输入远程主机用户oracle的密码。

注意:这里的oracle是远程主机的用户,也就是通过ssh免密要登录到哪个用户下,standby是远程主机的主机域名或者主机名。

或者,通过ssh-copy-id工具自动将公钥加入到远程的authorized_keys文件中

[mysql@redhat6 .ssh]$ ssh-copy-id oracle@standby
oracle@standby's password:
Now try logging into the machine, with "ssh 'oracle@standby'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.

4.测试通过ssh登录到oracle@standby是否仍然需要密码

[mysql@redhat6 .ssh]$ ssh oracle@standby
Last login: Fri Mar :: from 192.168.53.1
[oracle@standby ~]$ exit
logout
Connection to standby closed.

备注:已经可以通过ssh免密码登录到standby主机的oracle用户下了。

5.可以将远程主机的主机名换成IP地址进程免密登录

[mysql@redhat6 .ssh]$ ssh oracle@192.168.53.12
Last login: Mon Mar :: from redhat6
[oracle@standby ~]$ exit
logout
Connection to 192.168.53.12 closed.

备注:将@后面的主机名standby换成了对应的IP地址192.168.53.12也是能够正常的免密登录。

小结

  通过以上的方法就实现了通过ssh免密登录远程主机,之后可以在远程主机上执行命令了,将ssh免密登录的内容放入到

  相应的自动化脚本中,就实现了自动化的脚本执行。

文档创建时间:2018年3月12日10:59:30

linux中,ssh实现免密自动登录到远程主机,ssh信任的实现的更多相关文章

  1. CentOS下SSH远程免密登录服务器

    .5服务器上配置,通过ssh远程免密登录192. 1.安装SSH,此处省略 2.生成公钥和私钥,生成的秘钥默认在/root/.ssh/文件夹里面 [root@localhost ~ ::&&a ...

  2. Hadoop起步之图解SSH、免密登录原理和实现

    1. 前言 emmm….最近学习大数据,需要搭建Hadoop框架,当弄好linux系统之后,第一件事就是SSH免密登录的设置.对于SSH,我觉得使用过linux系统的程序员应该并不陌生.可是吧,用起来 ...

  3. Linux OS 集群 免密登录

    1. ssh-keygen  生成密钥 2. ssh-copy-id  集群主机名 参考: [图文详解]linux下配置远程免密登录

  4. Linux下配置远程免密登录

    第一步: 输入ssh-keygen: [root@localhost zookeeper-3.5.7]# ssh-keygen Generating public/private rsa key pa ...

  5. 2019-10-11 ubuntu ssh远程免密登录配置及配置别名

    在客户端能正常远程访问服务端的前提下. 客户端: 1)配置免密 执行 ssh-keygen 即可生成 SSH 钥匙,回车三次. 执行 ssh-copy-id user@remote,可以让远程服务器记 ...

  6. ssh批量免密

    expect命令在linux下实现批量ssh免密 发布时间:2017-11-27 08:41:39 投稿:laozhang 本次文章主要给大家讲解了在linux系统下用expect命令实现批量ssh免 ...

  7. 多台linux主机之间建立免密通信

    多台linux主机之间设置免密通信 例:A 向 B设置免密通信 第一步 A生成密钥对 ssh-keygen -t rsa -t 指定秘钥的类型 rsa 秘钥类型 密钥目录:/root/.ssh/(如果 ...

  8. linux修改主机名+免密认证+关闭防火墙

    在很多软件安装的时候都有这些需求,因此在这里一起讲一下 修改主机名 简单的使用 hostnamectl 命令就好了 hostnamectl set-hostname NAME 免密认证 准备工作,修改 ...

  9. SSH localhost免密不成功 + 集群状态显示Configured Capacity: 0 (0 KB)

    前一天运行hadoop一切安好,今天重新运行出现BUG.下面对遇到的bug.产生原因以及解决方法进行一下简单总结记录. [bug1]用ssh localhost免密登录时提示要输入密码. 原因分析:之 ...

随机推荐

  1. angular学习笔记(二十三)-$http(1)-api

    之前说到的$http.get和$http.post,都是基于$http的快捷方式.下面来说说完整的$http: $http(config) $http接受一个json格式的参数config: conf ...

  2. js在IE8+兼容String没有trim方法,写一个兼容ie8一下的浏览器的trim()方法

    方法一: String.prototype.trim = function(){ return Trim(this);}; function LTrim(str) {    var i;     fo ...

  3. C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比

    今天重新学习了一下观察者模式,对我的思路产生了启发.进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现.我已经用序号将关键的几步标注,方便大家理顺思路.代码如下: using System ...

  4. c++之——抽象基类

    在一个虚函数的声明语句的分号前加上 =0:就可以将一个虚函数变成纯虚函数,其中,=0只能出现在类内部的虚函数声明语句处.纯虚函数只用声明,而不用定义,其存在就是为了提供接口,含有纯虚函数的类是抽象基类 ...

  5. 分享JQuery动画插件Velocity.js的六种列表加载特效

    分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览   源码下载 实现 ...

  6. jQuery (一)选择器

    上一章开始了jQuery的安装,这一张需要开始学习选择器了,不然不进行选择,就无法使用jQuery提供的库的功能不是. 常用的,就列举这么多吧 <!DOCTYPE html> <ht ...

  7. u-boot 2016.05 添加u-boot cmd

    记录一下如何在u-boot 添加一个自己想要的命令. 首先来看一下宏,include/command.h 218 #define U_BOOT_CMD(_name, _maxargs, _rep, _ ...

  8. BM和KMP字符串匹配算法学习

    BM和KMP字符串匹配算法学习 分类: 研究与学习 字符串匹配BM(Boyer-Moore)算法学习心得 http://www.cnblogs.com/a180285/archive/2011/12/ ...

  9. SpringAOP 通知(advice)

      @Aspect @Order(1) public class AopOne { /** * 目标方法执行之前 * @param joinPoint */ @Before("executi ...

  10. 碰到故障大全---cd

    office已安装32位,无法安装64位?解决方案:开始→运行→输入regedit,打开注册表编辑器,找到HKEY_CLASSES_ROOT\\Installer\\Products\ \000021 ...