linux中,ssh实现免密自动登录到远程主机,ssh信任的实现
需求描述:
平时使用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信任的实现的更多相关文章
- CentOS下SSH远程免密登录服务器
.5服务器上配置,通过ssh远程免密登录192. 1.安装SSH,此处省略 2.生成公钥和私钥,生成的秘钥默认在/root/.ssh/文件夹里面 [root@localhost ~ ::&&a ...
- Hadoop起步之图解SSH、免密登录原理和实现
1. 前言 emmm….最近学习大数据,需要搭建Hadoop框架,当弄好linux系统之后,第一件事就是SSH免密登录的设置.对于SSH,我觉得使用过linux系统的程序员应该并不陌生.可是吧,用起来 ...
- Linux OS 集群 免密登录
1. ssh-keygen 生成密钥 2. ssh-copy-id 集群主机名 参考: [图文详解]linux下配置远程免密登录
- Linux下配置远程免密登录
第一步: 输入ssh-keygen: [root@localhost zookeeper-3.5.7]# ssh-keygen Generating public/private rsa key pa ...
- 2019-10-11 ubuntu ssh远程免密登录配置及配置别名
在客户端能正常远程访问服务端的前提下. 客户端: 1)配置免密 执行 ssh-keygen 即可生成 SSH 钥匙,回车三次. 执行 ssh-copy-id user@remote,可以让远程服务器记 ...
- ssh批量免密
expect命令在linux下实现批量ssh免密 发布时间:2017-11-27 08:41:39 投稿:laozhang 本次文章主要给大家讲解了在linux系统下用expect命令实现批量ssh免 ...
- 多台linux主机之间建立免密通信
多台linux主机之间设置免密通信 例:A 向 B设置免密通信 第一步 A生成密钥对 ssh-keygen -t rsa -t 指定秘钥的类型 rsa 秘钥类型 密钥目录:/root/.ssh/(如果 ...
- linux修改主机名+免密认证+关闭防火墙
在很多软件安装的时候都有这些需求,因此在这里一起讲一下 修改主机名 简单的使用 hostnamectl 命令就好了 hostnamectl set-hostname NAME 免密认证 准备工作,修改 ...
- SSH localhost免密不成功 + 集群状态显示Configured Capacity: 0 (0 KB)
前一天运行hadoop一切安好,今天重新运行出现BUG.下面对遇到的bug.产生原因以及解决方法进行一下简单总结记录. [bug1]用ssh localhost免密登录时提示要输入密码. 原因分析:之 ...
随机推荐
- 每日英语:Some Chinese Students Stay Home to Get Ahead
Li Shan's oldest son was the perfect candidate to join the throngs of Chinese students studying abro ...
- 四、用“”或构造函数创建Java的String区别
在Java中,一个字符串可以通过下面两种方法创建. String x = "abc"; String y = new String("abc"); 用双引号创建 ...
- vue的面包屑导航组件
用来将其放到navbar中: Breadcrumb/index.vue <template> <el-breadcrumb class="app-breadcrumb&qu ...
- javascript基础学习--HTML DOM
写在前面的话:由于学校没有开过javascript这门课,所以平时用javascript时都是用到什么就去搜什么样的代码,但是在工作中有时候搜来的代码总是有那么点小问题,而当自己想去修改时,却又无从下 ...
- 第一个struts程序的配置过程
然后输入project-name,比如说“test",点finish,配置web.xml,这里的org.apache.struts.action.ActionServlet就在struts- ...
- C#中关于系统用户信息持久化(接上文)
首先传几张效果图描述一下功能: 经过上文用户名和密码的验证后,就到了添加用户这一步,登陆后的用户可以添加新的用户,被添加的用户可以登陆系统. 这里会用到C#中的“正则表达式”对用户名格式进行判断,以及 ...
- [WF4.0 实战] AutoResetEvent具体解释(线程独占訪问资源)
由来: 在学习工作流的过程中,宿主程序中会出现这么一段代码: staticAutoResetEvent instanceUnloaded = new AutoResetEvent(false); 然后 ...
- JavaScrip——对话框的简单应用(判断isNaN)
综合运用 isNaN的用法:判断是不是一个合法的数字类型,是数字返回false,不是返回true 1.我们用prompt来接收输入的内容 2.通过isNaN来做判断 3.最后用alert输出结果 &l ...
- sed: 1: “…”: invalid command code on Mac OS
昨天因为项目中有很多文件的同一个变量需要批量替换成另一个,想用sed做这个.Linux 这样其实就可以了 ~# sed -i “s/string_old/string_new/g” grep -rl ...
- java- ★学习资源★
何静媛: http://blog.csdn.net/hejingyuan6/article/category/2367993 孤傲苍狼-java基础总结: http://www.cnblogs.com ...