我是靠谱客的博主 文静花生,最近开发中收集的这篇文章主要介绍打通两台机器的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 "123456r"
expect "*]*"
#sleep 3
send "mkdir /home/yunjiu.llh/tmpr"
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/

最后

以上就是文静花生为你收集整理的打通两台机器的ssh的全部内容,希望文章能够帮你解决打通两台机器的ssh所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部