需求描述

  平时使用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. go--Ubuntu下安装GO LANG,测试输入hello world

    1.下载go语言源码,https://storage.googleapis.com/golang/go1.6.1.linux-amd64.tar.gz 2.解压缩源码包tar zxvf go1.6.1 ...

  2. Livepool

    LivePool Fiddler Like cross platform debugging proxy for web developers base on NodeJS LivePool 是一个基 ...

  3. singer页面点击歌手singer是跳转到singer-detail的设置

    1.创建components/singer-detail/singer-detail.vue 2.配置动态路由: { path: ':id', name:'singer-detail', compon ...

  4. 使用filter导致服务器返回的页面始终是空白---在doFilter中漏写了chain.doFilter()

    今天调代码的时候,突然发现,服务器开着,什么都没有问题,当我把下面这个filter给deploy了以后,访问所有的页面就都是空白. 后来发现,是因为在代码路径中,有一条路径没有调用filterChai ...

  5. iphone 6plus 下app里的状态栏和界面会被放大的问题//以及设置APP闪屏页/APP图标流程

    //设置APP闪屏页/APP图标流程如下 2.6Plus界面显示变大以及APP图标变大是由于上面图片的AppIcon以及LaunchImage造成的,主要是由于找不到对应的3x图片,或者改3x图片尺寸 ...

  6. 对象的操作-javascript

    任务要求: 每单机一下div,边框各加5px,且会红色跟黑色相互交替. 学习总结: 主要是学习到了parseInt这个函数.主要是将本身设置好的长宽然后再加5像素的时候需要用到该函数.如果直接加不使用 ...

  7. oracle 制定定时任务

    本节摘要:本节介绍使用oracle自带的job来实现oracle定制定时执行任务.   1.引言 定制定时执行的任务有两种形式,系统级别和数据库级别, 从操作系统级别来讲, windows系统我们可以 ...

  8. excel自定义函数添加和使用方法

    第一,excel自定义函数简介 Excel自带很多函数供使用,但有些问题用内置函数解决起来很复杂,甚至是无能为力,这时就可以利用VBA开发自定义函数. 第二,excel如何添加自定义函数 excel自 ...

  9. Windows下Postgresql数据库的下载与配置方法

    注意下载的是二进制版,不是带Windows Installer的,即绿色版本 http://www.enterprisedb.com/products-services-training/pgbind ...

  10. Android——实现欢迎界面的自动跳转(转)

    Android实现欢迎界面的自动跳转,就是打开某一个安卓手机应用,出现的欢迎界面停留几秒钟,自动进入应用程序的主界面.在网上看到很多种实现办法,但是感觉这种方法还是比较简单的. 在onCreate里设 ...