热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux之间建立信任关系

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

【前言】

目的:在两个Linux之间建立信任关系,互相访问不用输入密码

环境:RHEL5+SSH

说明:需要建立信任关系的用户为Oracle,两台主机hostname分别为:vm1/vm2 

【步骤】

(1)、切换到需要建立信任关系的用户,这里是oracle用户
(2)、执行命令:ssh-keygen  -d,然后一直回车.
该命令会在用户home目录下生成一个隐藏的.ssh目录。目录里面有两个文件:
id_dsa、id_dsa.pub
这两个是密钥文件,id_dsa是密钥,id_dsa.pub是公钥
(3)、在.ssh目录下建立文件:authorized_keys2
(4)、在主机vm2上面执行步骤1~3
(5)、将vm1主机的id_dsa.pub文件内容复制到vm2主机的authorized_keys2
(6)、将vm2主机的id_dsa.pub文件内容复制到vm1主机的authorized_keys2

详细步骤可以参考下面:

 

[root@vm1:/]#su - oracle
[oracle@vm1]#pwd
/home/oracle
[oracle@vm1]#ls
-la
总计
44
drwx------ 3 oracle oinstall 4096 03-30 17:48 .
drwxr-xr-x 4 root root 4096 03-30 17:00 ..
-rw------- 1 oracle oinstall 933 03-31 15:54 .bash_history
-rw-r--r-- 1 oracle oinstall 24 03-30 17:00 .bash_logout
-rw-r--r-- 1 oracle oinstall 629 03-30 17:48 .bash_profile
-rw-r--r-- 1 oracle oinstall 124 03-30 17:00 .bashrc
-rw-r--r-- 1 oracle oinstall 515 03-30 17:00 .emacs
drwxr-xr-x 3 oracle oinstall 4096 03-30 17:00 .kde
-rw------- 1 oracle oinstall 682 03-30 17:48 .viminfo
-rw-r--r-- 1 oracle oinstall 658 03-30 17:00
.zshrc
[oracle@vm1]#ssh
-keygen -d
Generating
public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Created directory '/home/oracle/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
24:a2:81:6c:f3:77:b2:99:79:50:c4:2b:bb:98
:8f:ca oracle@vm1
[oracle@vm1]#ls
-la
总计
48
drwx------ 4 oracle oinstall 4096 04-01 19:27 .
drwxr-xr-x 4 root root 4096 03-30 17:00 ..
-rw------- 1 oracle oinstall 933 03-31 15:54 .bash_history
-rw-r--r-- 1 oracle oinstall 24 03-30 17:00 .bash_logout
-rw-r--r-- 1 oracle oinstall 629 03-30 17:48 .bash_profile
-rw-r--r-- 1 oracle oinstall 124 03-30 17:00 .bashrc
-rw-r--r-- 1 oracle oinstall 515 03-30 17:00 .emacs
drwxr-xr-x 3 oracle oinstall 4096 03-30 17:00 .kde
drwx------ 2 oracle oinstall 4096 04-01 19:27 .ssh
-rw------- 1 oracle oinstall 682 03-30 17:48 .viminfo
-rw-r--r-- 1 oracle oinstall 658 03-30 17:00
.zshrc
[oracle@vm1]#cd .ssh
[oracle@vm1]#ls
-l
总计
8
-rw------- 1 oracle oinstall 668 04-01 19:27 id_dsa
-rw-r--r-- 1 oracle oinstall 600 04-01 19:27
id_dsa.pub
[oracle@vm1]#touch authorized_keys2
[oracle@vm1]#ls
-l
总计
8
-rw-r--r-- 1 oracle oinstall 0 04-01 19:27 authorized_keys2
-rw------- 1 oracle oinstall 668 04-01 19:27 id_dsa
-rw-r--r-- 1 oracle oinstall 600 04-01 19:27
id_dsa.pub
[oracle@vm1]#cp id_dsa.pub id_dsa.pub.vm1
[oracle@vm1]#scp id_dsa.pub.vm1 vm2:
/home/oracle/.ssh/
The authenticity of host
'vm2 (139.122.1.20)' can't be established.
RSA key fingerprint is 2d:01:46:c1:55:6e:57:ef:0c:c1:55:50:b4:fa:39:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vm2,139.122.1.20' (RSA) to the list of known hosts.
oracle@vm2's password:
id_dsa.pub.vm1 100% 600 0.6KB/s 00:00
[oracle@vm1]#ls
-l
总计
20
-rw-r--r-- 1 oracle oinstall 0 04-01 19:27 authorized_keys2
-rw------- 1 oracle oinstall 668 04-01 19:27 id_dsa
-rw-r--r-- 1 oracle oinstall 600 04-01 19:27 id_dsa.pub
-rw-r--r-- 1 oracle oinstall 600 04-01 19:29 id_dsa.pub.vm1
-rw-r--r-- 1 oracle oinstall 600 04-01 19:30 id_dsa.pub.vm2
-rw-r--r-- 1 oracle oinstall 398 04-01 19:29
known_hosts
[oracle@vm1]#cat id_dsa.pub.vm2
ssh
-dss AAAAB3NzaC1kc3MAAACBAL/W2eqD725BtEZeB+v/VOBm1TIlCU4BnDlatNBLSdNtNpnLvGU4mcv8Ym9Xk25plMB2J3YJY4o6FGVFLrAaBVzsJFvWJcZDzrsGNyaEFmW6M8SbxQV4lC/kITkuSAXnmMGE2oSeHUxRFVO5AdOIQ7x5W7bJtOe+WcHA6xgunUcTAAAAFQCMlW/wduHRlTRyluNsUhz2IF7ZrQAAAIAOzgpQbvibWn0pUstJ5jIN0J53OHVXk4wVz/R8tg9ltob+V7Jru3ABDs3/DpLJC4Ep1B1gW6rI+/sxr6Z2qGT100WOz3xKowDNREst9SHiwXPVjPy/Vv/Ymqeugc5AX3/eicVtgCgY+hxfM+4rBrTLZ19HyNSGF7YxVrsEuPSEqAAAAIB8XKN6qc7HjTfngcqwmDREaagb7y8VkYj4kUTl31vrvTXBBeUCCuaVvAUPF1bf7U55Iy4OMv6hJ4ZBXwNzK/6/2QKYt3tS8ncFg/PkGRHvafQi8HglIbAoI9cErIDDb7G55mDtoctyuoCe6apfcnxJiJNFxxgxJjjgAHdNIpEBsg== oracle@vm2
[oracle@vm1]#cat id_dsa.pub.vm2
> authorized_keys2
[oracle@vm1]#cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               vm1 localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
139.122.1.10  vm1
139.122.1.20  vm2

[oracle@vm1]#ssh vm2 ls
[oracle@vm1]#ssh vm2 ls
-a
.
..
.bash_history
.bash_logout
.bash_profile
.bashrc
.emacs
.kde
.ssh
.viminfo
.zshrcd

 

    成功之后用ssh或者scp命令都不用输入密码【建立后第一次访问可能要确认一次】,如果不成功可能原因如下:

    1、.ssh目录以及目录内文件权限不正确

    .ssh目录权限为700,目录内文件权限为644

    2、复制公钥文件id_dsa.pub的时候复制了多余的字符,比如空格或者换行,所以我上面演示的例子用了一种看起来比较

麻烦但算是安全的做法

 

    备注:

    如果要建立多台主机,比如四台主机之间的root用户之间的信任关系,步骤和上面差不多,假设四台主机hostname分别为:
VM1
VM2
VM3
VM4

步骤如下:
(1)、用root用户登陆VM1
(2)、cd ~
(3)、执行命令:ssh-keygen  -d,然后一直回车.
(4)、在root用户的主目录的.ssh目录下建立文件:authorized_keys2,修改权限为:644
(5)、在其他主机上面执行步骤1、2、3、4
(6)、将VM2、VM3、VM4主机的id_dsa.pub文件内容依次复制到csg-dev1主机的authorized_keys2内
(7)、在其他主机上重复步骤6[将除了自己之外的其他主机的公钥文件的内容复制到本机的authorized_keys2里面].

3、验证
在csg-dev1上面用root用户执行命令:
#ssh VM2主机IP  ls
#ssh VM3主机IP  ls
#ssh VM4主机IP  ls
如果能顺利列出对方主机文件,则说明配置成功.


推荐阅读
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 解决Linux中wget无法解析主机的问题
    本文介绍了如何通过修改/etc/resolv.conf文件来解决Linux系统中wget命令无法解析主机名的问题,通过添加Google的公共DNS服务器地址作为解决方案。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文详细介绍了如何利用Xshell配合Xftp实现文件传输,以及如何使用Pure-FTPd构建FTP服务,并探讨了VSFTP与MySQL结合存储虚拟用户的方法。 ... [详细]
  • 本文详细介绍了Linux系统中信号量的相关函数,包括sem_init、sem_wait、sem_post和sem_destroy,解释了它们的功能和使用方法,并提供了示例代码。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • 如何在Mozilla Firefox中调整GIF动画的循环次数
    本文介绍了如何通过调整Mozilla Firefox的高级设置来控制GIF动画的播放次数,帮助用户根据个人喜好自定义浏览体验。 ... [详细]
author-avatar
LIU在笑_139
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有