使用了expect来处理交互内容,代码如下
#!/bin/sh function usage() { cat << EOF Usage ssh_connect ip [username] [password] EOF } auto_login_ssh() { expect -c "set timeout -1; spawn ssh $user@$ip expect { yes/no { send \"yes\n\" expect password send \"$pass\n\" } password {send \"$pass\n\"} } interact; " } scp_file(){ expect -c " spawn scp $pub $user@$ip:~ expect { yes/no { send \"yes\n\" expect \"password\" send \"$pass\n\" } password {send \"$pass\n\"} } send \" cat ~/id_dsa.put >> ~/.ssh/authorized_keys\" interact; " } ssh_cmd() { echo $1 expect -c " spawn ssh $user@$ip expect { yes/no { send \"yes\n\" expect password send \"$pass\n\" } password {send \"$pass\n\"} } expect ] send \"$1\n\" expect ] send \"exit\n\" expect eof " } ip=$1 user=root pass=pwd if [ ! -z $2 ];then user=$2 fi if [ ! -z $3 ];then pass=$3 fi cd ~ sshpath=$PWD"/.ssh" if [ ! -d $sshpath ];then mkdir $sshpath fi pub=$sshpath"/id_dsa.pub" echo $pub if [ ! -f $pub ]; then ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa fi #auto_login_ssh scp_file ssh_cmd "cat ~/id_dsa.pub >> ~/.ssh/authorized_keys"
相关推荐
SSH免密登录脚本,免密登陆环境脚本------ssh_no_pass.sh,centos7,ssh秘钥
这个"shell脚本远程启动其他服务器的tomcat传输文件自动登录判断启动停止"的方案,就是一种典型的自动化运维实践,它结合了多个核心工具和技术,包括shell脚本、expect、ssh以及scp,用于实现远程服务器管理与文件...
1一个脚本工具可以是用于自动化任务的简单Shell脚本--备份目录并压缩.docx
入门相依性< dependency> < groupId>com.github.fonimus</ groupId> < artifactId>ssh-shell-spring-boot-starter</ artifactId></ dependency> 注意:自动配置SshShellAutoConfiguration (默认情况下处于活动...
大数据集群管理脚本
shell脚本-从入门到精通,适用于初学者,不了解shell脚本的同志。
"通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器" 本文将介绍如何使用Shell脚本将Gitlab备份文件自动定时复制到远程服务器上,并对远程服务器上的Gitlab备份文件进行定时清理。 知识点一:SSH密钥配对 ...
一键部署Linux CentOS,自动安装MySQL、Redis和Java Shell脚本-Linux_install_Sql_Sedis_Java
出于安全考虑,SSH在连接远程主机时会要求输入密码,但在脚本自动化场景中,这种交互式输入密码的方式是不可接受的。为了解决这一问题,这篇博文介绍了如何使用expect工具实现shell脚本中的SSH无交互自动登录。 ...
重启服务器常用环境,redis,nginx,kibana,es
本文将详细讲解如何使用shell脚本来批量执行`ssh-copy-id`,以提高效率。 ### 需求 批量自动化地将本地的SSH公钥发送到一系列远程主机。这在管理大量服务器或集群时非常有用,避免了手动逐个配置的繁琐过程。 ### ...
总的来说,通过shell和expect脚本实现SSH免密登录自动化配置,可以显著提高运维效率,降低人为错误,尤其适用于大规模的服务器集群管理。不过,这种自动化也带来了一定的安全风险,因此必须谨慎使用,确保只有授权的...
shell教程,包含大量的小例子,脚本信息,还有一些技巧。
### Shell脚本比较两台服务器目录及文件是否一致 在IT运维工作中,经常需要对比不同服务器上的文件或目录是否一致,特别是在对生产环境和测试环境进行对比时尤为重要。本文将详细解析一个用于比较两台服务器目录及...
通过shell脚本执行scp和ssh命令
本压缩包“xshell ssh自动登录并执行命令脚本.rar”提供了一种自动化的方式,通过Xshell自动连接到SSH服务器并执行预设的命令脚本,极大地节省了手动操作的时间。 首先,我们需要了解SSH(Secure Shell),这是一种...
Shell脚本会自动检测到攻击IP,并将其加入到防火墙规则中,以阻止攻击。 2. Linux系统发送告警脚本 这个脚本可以在Linux系统中发送告警邮件,通知管理员系统中的异常情况。我们使用mailx命令来发送邮件,并使用...
批量打通SSH脚本的目的是为了自动化处理多个服务器的SSH连接,提高运维效率。在本案例中,我们将使用`expect`和`python`这两个工具来实现这个功能。 `expect`是一个脚本语言,它扩展了Tcl,主要用于自动化交互式的...
"Go-sshkeys-获取ssh服务器的所有ssh公钥"项目就是这样一个例子,它提供了一个用Go语言编写的工具,可以方便地获取SSH服务器上的所有SSH公钥。 SSH公钥是SSH认证机制的一部分,用于实现无密码登录或者加强服务器...
在Shell脚本中,我们可以组合各种命令,实现自动化任务。了解基本的Shell语法,如变量定义、条件语句(if-else)、循环(for, while)以及函数定义,是编写脚本的前提。 2. **Nginx部署** Nginx是一款高性能的HTTP...