`
mozhenghua
  • 浏览: 324631 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

打通两台机器的ssh

 
阅读更多

在分布式应用之中经常要将两台机器的命令打通,需要在A机器上触发B机器上的某条命令,比如,在做svn的主从同步服务过程中,需要在A机器上触发B机器上的 svn up /var/www/html 命令,在A机器上可以这样执行:

 

ssh 10.2.3.34 "svn up /var/www/html" 这条命令在控制台中执行的话会提示您需要输入B机器上的用户名密码,才能正常执行。问题是,如果要将这条命令写道shell 文件中,在执行过程中没有机会让你去输入用户信息。

这样就需要事先在AB两台机器之间建立信任机制。

 

打通两台服务器的SSH的方法简单,只要执行以下步骤就行了:

1 假设都是用root用户,在A机器上cd /root/.ssh  然后执行命令ssh-keygen命令,

  控制台会打印出以下提示,都敲击回车就行了

Enter file in which to save the key (/home/svnsync/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

 

 然后会在目录下产生一个新的公钥文件 id_rsa.pub,打开该公钥文件,将里面的内容拷贝下来

  如果之前你使用的 adduser svnsync(此应该为受控机)为系统添加了一个专门做svn同步的用户帐户,此时需要先执行以下

su - svnsync,然后执行以下 ssh 123.123.123.123 (ip随便好了),之后就 cd /home/svnsync/.ssh

2 打开B服务器的 /root/.ssh目录,(假设当前登录的用户是 root用户)vi authorized_keys 该文件,将光标移动到文件最后一行,将剪贴板中的内容添加到文件的结尾。

注意:authorized_keys 这个文件需要有执行权限,执行chmod 700  authorized_keys 就行了

3最后在A 上执行ssh 10.2.3.34 "svn up /var/www/html"敲击回车之后,会显示确认对话框,输入“yes”就ok了

 

注:默认情况下 用户的 当前目录都会在 /home/目录下,例如:/home/baisui /home/user2 等,也有不是这个目录下的,比如:在服务器上安装了tomcat5,tomcat5的拥有者为tomcat用户,但是在/home 目录下没有该用户的文件夹,但是可以用过执行 “sudo vi /etc/passwd” 这个命令来查看:

 

 

tomcat:x:91:91:Tomcat:/usr/share/tomcat5:/bin/sh

 有这么一条,说明tomcat的当前目录是 /usr/share/tomcat5 这个目录

 

 

另外,如果当前你没有root权限,如果要执行一些自动化的批处理,需要手工输入的话可以考虑使用 expect命令,可以帮你事半功倍,http://www.pythonclub.org/linux/expect   http://www.tcl.tk/man/expect5.31/expect.1.html

以下这段代码可以在 远端服务器上的/home/yunjiu.llh 目录下创建一个tmp目录

 

#!/usr/bin/expect

set timeout 30

#spawn ssh 172.24.157.108

expect -d<<EOF

spawn ssh -l yunjiu.llh 172.24.157.104

expect "*assword*"

send "123456\r"

expect "*]*"
 
#sleep 3

send "mkdir /home/yunjiu.llh/tmp\r" 

 expect "*]*"

exit

  

 一个远程执行ssh 环境变量的问题:

  执行如下代码:~/myscript.sh: line n: app: command not found,不能正常执行

显然在远程编辑 /etc/profile 文件没有效果,而是要 去编辑

vim /etc/bashrc,在文件最后export上环境变量

  http://feihu.me/blog/2014/env-problem-when-ssh-executing-command-on-remote/

 

 

Ansible利用代理服务器操作私有云N台服务器

假设需要通过Ansible操作私有网络中的N台服务器,执行机器是在私有网络外部,连接Ansible操作客户端(A)的有一台代理服务器(B),B与私有网络中的其他机器(C)是通过私钥认证打通的。

 

进行这个操作需要确定两部分连接是正常的,首先A->B, 和B->私有网络中的机器C

 

A->C打通可以以下步骤来确定:

  • 确认A上的Ansible操作端开启服务器Forward权限,vim /root/.ssh/config 
  • Host *
        ForwardAgent yes
        ForwardX11 no
        KeepAlive yes
        ServerAliveInterval 30
     ForwardAgent需要为yes
  • 确认A的公钥加入B的authorized_keys
  • 先到B机器执行ssh-add操作,确认ssh-add -l是否正常加入想要的私钥
  • 执行ssh-add -l 显示ssh-agent缓存中的秘钥配置,如果连接B的秘钥配置不在缓存中则进如下一步
  • 在B机器中将操作/home/centos/.ssh/authorized_keys 将私钥对应的公钥添加进去 
  • 执行ssh-add files/id_rsa003 将私钥加入到ssh-agent中
  • 验证ssh-add 是否成功,通过ssh到B机器  ssh centos@34.99.108.87 ,如正常登录哦则说明ssh-add 成功了

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    打通两台机器间的信任关系,并分发文件

    在IT行业中,尤其是在服务器管理与自动化运维领域,打通两台机器间的信任关系并进行文件分发是一项基础且重要的任务。本文将围绕这个主题,详细解释如何实现这一目标,并涉及相关知识点,包括LAMP/LNMP环境搭建、SSH...

    批量打通SSH脚本

    在提供的压缩包文件中,"批量打通ssh脚本"很可能是这样一个结合了`expect`和`python`功能的脚本,具体实现可能因需求而异,但其核心思想是利用这两个工具自动化SSH连接流程。你可以解压文件,查看并学习其中的实现...

    SSH最简单配置和详细配置

    描述中提到的"一个最简单的ssh配置打通的项目"可能是一个快速启动SSH服务的示例项目,它可能包含初始化SSH配置、启动服务和进行首次连接的步骤。 而"一个详细配置说明的项目"则涵盖了更复杂的设置,可能涉及以下...

    如何在两台MySQL数据库间实现同步

    在开发环境中,有时需要在两台MySQL数据库之间实现数据同步,以确保数据的一致性和冗余。本教程将详细介绍如何在两台运行相同系统(FreeBSD 5.4)和软件(Apache 2.0.55、PHP 4.4.0、MySQL 4.1.15)的服务器上配置...

    打通构建地质数据管理服务大格局的关窍.pdf

    打通构建地质数据管理服务大格局的关窍.pdf 打通构建地质数据管理服务大格局的关窍.pdf 打通构建地质数据管理服务大格局的关窍.pdf 打通构建地质数据管理服务大格局的关窍.pdf 打通构建地质数据管理服务大格局的关窍...

    WebSSH:一个在线的ssh客户端

    基于Web的SSH客户端 我们现在大多数的ssh客户端其实都是基于不同的操作系统设计的,例如windows的putty,还有mac的iTerm。现在基于iaas的云服务在行业中广泛地使用,从安全角度,以及使用的方便性上,我们希望给云...

    PK_Boss:一个简单的命令行脚本,用于通过ssh管理公钥

    PK老板一个简单的命令行脚本,使用Elixir通过ssh管理公钥。 它允许您在一个位置管理多台服务器的公钥。安装该脚本需要Elixir。 可以在安装说明设置对于要管理的每个服务器,在pk_boss / auth_keys目录中创建一个文件...

    用python写个自动SSH登录远程服务器的小工具(实例)

    ### 使用Python实现自动SSH登录远程服务器的小工具 #### 概述 本文将详细介绍如何使用Python编写一个简单实用的工具,该工具能够实现自动化SSH登录到远程服务器的功能。这对于经常需要远程管理服务器的用户来说非常...

    CISCO 路由器OSPF+MPLS+BGP 配置实例

    由 5 台 CISCO7204 组成的网络,一台为 P 路由器,两台 PE 路由器,两台 CE 路由器; 二 二二 二、 、、 、网络描述 网络描述网络描述 网络描述 在 P 和两台 PE 路由器这间通过 OSPF 动态路由协议完成 MPLS 网络的建立...

    crmeb电商系统 v2.5.36 打通版.zip

    "crmeb电商系统 v2.5.36 打通版.zip" 是一个包含电商系统源代码的压缩文件,版本号为2.5.36,旨在提供一个完整的电商解决方案。该系统可能包含了前端用户界面、后台管理系统、数据库结构、API接口以及其他必要的功能...

    快速打字盲打通让您快速盲打

    此软件可以让您熟悉键盘键位,快速实现盲打

    打通C\S于B\S源码

    可以打通Demo源码,主要用了gridview和detailsview 这两个控件实现数据库的增删改及报表生成功能 P.S. 数据库使用的是SQLserver2000,数据库名为emp 有什么问题大家欢迎大家指正,互相学习

    西瓜微社区签到插件打通【DSU】每日签到 数据打通文件1

    这里提到的"西瓜微社区签到插件打通【DSU】每日签到 数据打通文件1"正是针对这个问题提供的一种解决方案。 西瓜手机签到插件和PC端的DSU每日签到插件是两个独立的应用,分别服务于手机和电脑用户。然而,它们之间...

    CRMEBV4.4标准版打通版商城源码小程序公众号H5+App商城源码

    CRMEB V4.4标准版打通版商城源码小程序公众号H5 App商城源码安装教程运行环境:php/mysql介绍:服务器环境推荐要求:Nignx/Apache/IISPHP 7.1 ~ 7.4MySQL 5.7Redis技术亮点1.自主研发独立客服系统;2.管理端页面使用...

    CRMEB单商户基础打通商业版v4.0前端uni-app源码【前端源码,未编译】

    CRMEB是Customer Relationship Management E-commerce Business的缩写,它融合了客户关系管理和电子商务两大功能。在CRMEB系统中,用户管理、订单处理、商品展示、营销活动、支付接口集成等都是重要的组成部分。这个...

    2021最新打通微信公众号通过链接跳转直接关注公众号

    2021最新打通微信公众号通过链接跳转直接关注公众号

    crmeb电商系统 v4.3.0 打通版.zip

    CRMEB客户管理+电商营销系统 核心技术TP6+Mysql+Vue+layui 支持公众号、小程序、H5端,带积分、优惠券、秒杀、会员、分销等功能,前后端“全部”开源,方便二开,详细使用文档可商用。企业公域流量转私域流量必备...

Global site tag (gtag.js) - Google Analytics