linux 2台机器之间建立ssh互信

环境说明
192.168.157.101 vms001 RHEL7.1
192.168.157.102 vms002 RHEL7.1

vms001服务器操作
1.vms001生成公钥私钥

命令执行成功,会在~/.ssh目录下生成2个文件

id_rsa.pub为公钥文件,现实生活中相当于锁
id_rsa 为私钥文件,现实生活中相当于钥匙

2.借用ssh-copy-id工具把公钥上传到vms002服务器,实现无密码登录

[[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.157.102 #公钥上传到对方服务器

上传完成后再vms002上的/root/.ssh/authorized_keys文件中,就会保存vms001的公钥信息,authorized_keys文件会自动创建,如下:
[[email protected] ~]# cat /root/.ssh/authorized_keys

再次使用ssh登录,就不需要输入密码了
[[email protected] ~]# ssh -i /root/.ssh/id_rsa 192.168.157.102 #公钥上传到目标服务器之后,我们可以使用-i参数指定对应的私钥来无密码登录服务器
[[email protected] ~]# ssh 192.168.157.102 #也可以不使用-i参数,直接使用ssh登录,它直接默认使用的是/root/.ssh/id_rsa这个私钥文件

vms002服务器操作
[[email protected] ~]# cd ~
[[email protected] ~]# ssh-keygen -t rsa #同样会生成公钥以及私钥文件
[[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.157.101 #上传公钥信息到vms001服务器

至此,vms001和vms002的ssh互信关系,建立完成。这里使用的是root用户创建的互信,也可以使用普通的用户来建立互信。
在使用ansible的时候,我们在ansible服务器上生成公钥和私钥,然后将公钥上传到每一个被管理的服务上,就可以实现ansible服务器无密码登录每一个被管服务器,从而实现ansible对多台服务器的同时操作。

原文地址:http://blog.51cto.com/2638441/2319850

时间: 2024-11-03 22:45:11

linux 2台机器之间建立ssh互信的相关文章

Linux两台主机之间建立信任

背景: 有时候我们在两个主机之间复制文件的时候,提示输入密码,很不方便,那如何免密码复制呢?,就是使用通过linux公钥和秘钥,建立双机信任关系. 1. 生成秘钥,并添加信任 我的环境中node1的ip是192.168.168.201,node2的ip是192.168.168.202. [[email protected] ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #生成rsa [[email protected] ~]# ssh-copy-id

Linux CentOS7 两台机器之间免输入密码相互登录(密钥对认证)

Linux CentOS7 两台机器之间免输入密码相互登录(密钥对认证) 两台机器为: 主机名:fxq-1,IP:192.168.42.181 主机名:fxq-2, IP:192.168.42.182 w命令可以查看当前登录用户的信息 [[email protected] ~]# w  23:59:42 up 12 min,  1 user,  load average: 0.00, 0.07, 0.11USER     TTY      FROM             [email prot

集群中配置多台机器之间 SSH 免密码登录

集群中配置多台机器之间 SSH 免密码登录 问题描述 由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署. 但是,这就涉及到机器间的 SSH 免密码互通问题. 当集群机器比较多的时候,如何能快速简洁地配置机器之间的免密码登录呢? 完美方案 1.分别查看集群的机器上,是否安装了 SSH,并且服务正常运行 ps -ef | grep ssh 2.如果步骤 1 检查后,确认没有安装 SSH,可以通过如下命令安装 SSH sudo apt-get install ssh 找到隐藏目录.

两台机器之间移动数据库的最简单

在两台机器之间移动数据库的最简单(尽管不是最快)的方法是在数据库所在的机器上运行下面的命令: shell> mysqladmin -h 'other_hostname' create db_name shell> mysqldump --opt db_name | mysql -h 'other_hostname' db_name 如果你想要从远程机器通过慢速网络复制数据库,可以使用: shell> mysqladmin create db_name shell> mysqldum

linux主机之间建立ssh信任关系

需求: hostA 要免密码ssh登入 hostB,即建立ssh信任关系 实施: 1.hostA:在~/.ssh,创建ssh密钥对 执行命令 ssh-keygen -t rsa (要求输入的位置直接回车),默认生成密钥对文件 id_rsa 和 id_rsa.pub 2.hostB:在~/.ssh,修改信任文件authorized_keys 把 hostA 的公钥文件 id_rsa.pub 追加到 hostB 的~/.ssh/authorized_keys文件中 验证: hostA 要免密码ssh

Linux多台服务器之间的文件共享

由于项目有个图片上传和导入导出的模块,所以当项目通过集群方式部署的时候就要考虑文件共享问题. 文件共享要么就是通过统一的文件系统来管理,要么就是在系统之间做文件共享,前者扩展性比较好,可以随时随地加服务器,后者实现简单,通过配置服务器共享目录即可,但不好扩展.我们这个项目的页面功能相对比较简单,而且是给公司内部人员使用的,pv很小,所以采用后者.这里记录下配置方式. 具体步骤如下: 1.通常情况下NFS软件包是系统默认安装的,在配置NFS服务器前先查看下软件包是否安装.如果没有安装,nfs-ut

Linux下不同机器之间的文件拷贝

通过 scp 命令实现不同机器之间的文件拷贝. (1)本机考到目标机器:scp 本机文件 目的地: 如:scp /home/odp-web.war   [email protected]:/usr/local/Tomcat/wepapps/ (2)其他机器考到本机:scp 其他机器上的文件 本机路径 如:scp [email protected]:/usr/local/Tomcat/wepapps/   /home/odp-web.war

两台机器之间调试c#程序

环境:有两台机器A和B(A和B在同一个局域网),其中A台机器上有程序,现在需要在机器B上访问A上从程序并在A上调试. 1.将本地程序部署到IIS上,注意:目录需要为当前程序的目录:假设提供的接口为: http://192.168.1.1/read/test 其中read为虚拟目录. 2.右击程序-属性-Web,在"服务器"下面选择"外部主机",项目url设置为IIS可访问的目录,设置到虚拟目录即可,如下图: 3.在本机程序中设置断点,并调试. 4.局域网内的服务器访

验证两台机器已经建立的ssh互信

1.expect方法 #!/bin/bash checkTrust() { expect -c ' set timeout 2; spawn ssh $1 "expr 12345678 + 87654321" expect { "*yes/no*" {send \003;} "*assword*" {send \003;} -re "#|$|>" {send exit\r;} } expect eof;' } resul