Linux实现远程控制机器的方法

这篇文章主要介绍Linux实现远程控制机器的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联公司专业为企业提供辽源网站建设、辽源做网站、辽源网站设计、辽源网站制作等企业网站建设、网页设计与制作、辽源企业网站模板建站服务,10多年辽源做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

在Linux下进行远程登陆的时候,总是要进行ssh输入账号密码,相对比较繁琐。而在工作中总会先从本地登陆到公司的中间机器(跳板机)然后才能登陆到线上的机器,每次操作更加繁琐。如果从A->B可以直接进行建立相互的信任关系来解决面输入密码的问题。显示情况如果A->B->C三台机器,如果想从A直接到C只能通过B进行登录,这样就无法建立A->C的信任关系(这种操作主要是为了保护线上机器不能随便登录)。该脚本就是解决这种有多个依赖的关系。

注意事项:

1.使用实时bashversion>=4.0,因为配置中需要使用关联数据

2.如果需要全局使用直接修改autologin的名字,移动到PATH路径下即可eg:mvautologin/usrl/local/bin/to(改为自己想要使用的名字)

脚本代码:

#!/usr/local/bin/bash

#@Version0.3.1

#@filenameto

#修复等不需要要配置跳板机的时候执行命令,在配置跳板机位置默认填no即可

#@Authorpemakoa@gmail.com

#Bashversion>=4.0使用关联数组

#Usage:hostuserpasswdportjump_hostcommand

#四种情况如下:

#1.直接登录目标机器如A

#2.需要中间机器登陆到目标机器如C,其中B为中间机器,会先登录B在从B登陆到C然后执行command

#3.直接登录目标机器并执行相应的命令如D

declare-A_server_config

_server_config['A']="a_hosta_usera_passwda_port"

_server_config['B']="b_hostb_userb_passwdb_port"

_server_config['C']="c_hostc_userc_passwdc_portB'(commandeg)ls.'"

_server_config['D']="d_hostd_userd_passwdd_portno'cd/home&&ll'"

_config_keys=(${!_server_config[@]})

_length=${#_server_config[@]}

_login_server=$1

_config_status=false

#是否输入登陆机器

if["$_login_server"==""];then

echo-e"\033[40m\033[31mPleaseinputloginserver,youcanchooseonefollowslist\033[0m"

foriin"${_config_keys[@]}";do

echo-e"\033[41;37m$i\033[0m"

done

exit

fi

#检查登陆的机器是否配置

foriin"${_config_keys[@]}";do

if["$_login_server"=="$i"];then

_config_status=true

fi

done

if["${_config_status}"=="false"];then

echo-ne"\033[40m\033[31m

Notconfigserverinfo...

Pleaseconfigin_server_configlike

HostUserPasswdPortJumpCommand\033[0m"

exit

fi

#登陆如果配置跳板机,先登陆跳板机在登陆到目标机器

_host=$(echo${_server_config["${_login_server}"]}|awk'{print$1}')

_user=$(echo${_server_config["${_login_server}"]}|awk'{print$2}')

_passwd=$(echo${_server_config["${_login_server}"]}|awk'{print$3}')

_port=$(echo${_server_config["${_login_server}"]}|awk'{print$4}')

_jump=$(echo${_server_config["${_login_server}"]}|awk'{print$5}')

_command=$(echo${_server_config["${_login_server}"]}|awk-F"'"'{print$2}')

if["${_command}"!=""];then

_command="expect\"*]*\"

send\"${_command}\r\""

fi

if["${_jump}"!=""]&&["${_jump}"!="no"];then

_jump_host=$(echo${_server_config["${_jump}"]}|awk'{print$1}')

_jump_user=$(echo${_server_config["${_jump}"]}|awk'{print$2}')

_jump_passwd=$(echo${_server_config["${_jump}"]}|awk'{print$3}')

_jump_port=$(echo${_server_config["${_jump}"]}|awk'{print$4}')

expect-c"

settimeout30

spawnssh-p${_jump_port}${_jump_user}@${_jump_host}

expect{

\"yes/no\"{send\"yes\r\";exp_continue}

\"assword\"{send\"${_jump_passwd}\r\"}

}

expect\"*]*\"

send\"ssh-p${_port}${_user}@${_host}\r\"

expect\"assword:\"

send\"${_passwd}\r\"

${_command}

interact"

else

expect-c"

settimeout30

spawnssh-p${_port}${_user}@${_host}

expect{

\"yes/no\"{send\"yes\r\";exp_continue}

\"*assword:\"{send\"$_passwd\r\"}

}

${_command}

interact

"

fi

以上是“Linux实现远程控制机器的方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!

网站标题:Linux实现远程控制机器的方法
分享链接:https://www.cdcxhl.com/article40/pppeeo.html

成都网站建设公司_创新互联,为您提供移动网站建设网站建设搜索引擎优化品牌网站制作网站策划手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设