需求描述

  平时使用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. sql排它锁

    1.为什么需要排它锁 事务中,有时我们在操作一条数据时,是不能让其他事务同时去操作的. 如某商品库存数量为1,如果有多个事务对该库存进行减一操作,那么库存可能出现负数. 所以,在某个事务操作时,需要把 ...

  2. 每日英语:March Remembers King's Dream

    President Barack Obama on Wednesday said the entire world drew strength from the March on Washington ...

  3. cancas绘制折线图

    知识点回顾: 知识点1: measureText() 方法返回包含一个对象,该对象包含以像素计的指定字体宽度. 提示:如果您需要在文本向画布输出之前,就了解文本的宽度,那么请使用该方法. JavaSc ...

  4. Mysql通过一个限制条件,查出多条不同的记录

    表1和表2是不同数据库中的同名table,但是发现表1中的查询和表2中的查询有区别,(事实是表1的查询是对的.) 表1的查询结果 mysql> select * from slot_value ...

  5. 【转】PowerDesigner表结构和字段大小写转换

    [转自]http://blog.csdn.net/xysh1991/article/details/8016192 使用方法:进入PowerDesigner,打开一个PDM,在菜单栏找到:Tools ...

  6. 一个div层在页面上下左右居中以及数据的排序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. ajaxfileupload 半成品遇到的问题,不走success 走error的问题

    大部分都是datatype 为 json的时候遇到的 1.遇到json被加pre标签  去掉 2.遇到json被加audio 标签 去掉 3.遇到json转换错误,换方式转 改后的代码如下  , 有注 ...

  8. Makefile学习之路——2

    让你的makefile更专业. 在上一个Makefile所在目录下通过touch命令创建一个clean文件,执行make clean,将发现make总是提示clean文件是最新的,而不是按我们期望的那 ...

  9. ioss使用xcode常用快捷键

    // command+r 运行 //command+.停止 // command+shift+y 弹出打印区 // command+z 回退 //command+shift+z 前进 // comma ...

  10. note,路况,计算

    note,路况,计算