ssh自动输入密码登陆

1  vi rm.sh

#!/bin/expect -f
set DATE [exec date +%Y%m%d%k]
set ipaddress [lindex $argv 0]
set port  [lindex $argv 1]
set logname [lindex $argv 2]
#set password xukeqiang
set date [exec date -d "-2 day" "+%Y%m%d"]
set fd [open /home/admin/passwd.sh r]
set password [read $fd]
close $fd
spawn ssh $ipaddress -p $port -l monitor
#set timeout 300
expect "[email protected]${ipaddress}‘s password:"
#set timeout 300
send "$password\r"
expect -re "\](\$|#)"
#send "rm -rf /tmp/${logname}${date}.tar\r"
send "sh /tmp/rm.sh\r"
expect -re "\](\$|#)"
send "exit\r"
expect eof

2  vi ip.sh##此文件不能有多余的空行

192.168.1.101 22 nagiosa_

192.168.1.102 22 nagiosb_

192.168.1.103 22 nagiosc_

3  vi piliang.sh

#/bin/bash
filename=/home/admin/ip.sh
while read line
do
        echo $line
        /bin/expect -f /home/admin/rm.sh $line
done<$filename

4  将C:\cygwin64\bin追加到windows系统环境变量Path中,然后编辑批处理文件piliang.bat如下:

sh c:\cygwin64\home\admin\piliang.sh
pause

时间: 2024-10-12 19:37:19

ssh自动输入密码登陆的相关文章

ssh自动输入密码脚本 切换目录脚本

利用expect的,首先查看expect,命令:which expect #!/usr/bin/expect -f spawn ssh 用户名@ip地址 expect "assword:" send "password\r" interact 自动输入密码,切换目录 #!/usr/bin/expect -f spawn ssh 用户名@ip地址 -t "cd xxxxx;bash --login" expect "assword:&qu

ssh 自动输入密码连接

公司的linux服务器和交换机都是用户名和密码ssh连接的,每次连接时都要手动输入密码感觉很是麻烦 如果连接时不用输入密码就方便很多了,于是网上查了下说是有三种解决方法 1. 生成ssh公钥,建立和对方机器的信任关系: 2. 使用expect脚本: 3. 使用sshpass. 个人比较喜欢使用sshpass,配上 shell脚本后效率提高很多 sshpass 安装 (centos) yum install sshpass 基本用法:sshpass -p [密码] ssh [user]@[host

通过expect免自动输入密码登陆远程服务器

1.前提必须已经安装expect 2.新建login.sh,文件内容如下 #!/usr/bin/expect -f spawn ssh [email protected]expect "password:"send "passwordR\r"interact 3.执行./login.sh即可登陆远端服务器

shell实现SSH自动登陆

前言 公司开发使用docker,每次登陆自己开发机总要输入 ssh [email protected]_string,然后再确认输入password,手快了还经常会输错.作为一个懒人,肯定要找一个取巧的方式,查看了下ssh命令,由于它要进行一次跟服务器的加密交互,所以没有直接附带密码登陆的选项,只好作罢. 前些天在同事进行技术分享时,看到他竟然只输入了一行命令./test.sh就成功登陆了开发机,甚是惊异,于是回来搜索研究了一下,遂成此文. shell脚本基础 在编写ssh自动登陆脚本之前,先说

shell脚本实现无密码交互的SSH自动登陆

ssh连接远程主机时候询问密码,跟su.sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆.搜索一下不难找到类似的例子,使用expect来完成密码应答: #!/bin/bash auto_login_ssh () { expect -c "set timeout -1; spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3}; expect *assword:*; send

设置SSH自动登陆(免密码,用户名)

1.创建公钥.公钥 ssh-keygen -t rsa 无视它出来的任何提示,欢快的一路回车到底吧. 2.把公钥 id_rsa.pub 复制到远程机器的 /home/username/.ssh目录 并命名为 authorized_keys 方法1: 一步到位:scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys 方法2: 复制 scp ~/.ssh/id_rsa.pub [email protected]:~ 登陆 ssh

linux备份和mysql登陆自动输入密码

1.mysql自动登陆,系统自己输入密码 (1)安装亿需要的软件 [[email protected] ~]# yum install expect-* (2)在脚本中写入命令 #!/usr/bin/expect -f             --使用expect软件set timeout 2                   --输出密码时延时2秒spawn mysql -u root -p           --mysql登陆命令expect "system"         

windows 10、8.1、7 用户自动登陆,避免输入密码登陆的注册表项:

用这几个系统的人,往往有时候需要输入密码登陆系统,如果不想用密码就需用命令行解决这个问题,今天没事儿,研究了一下,写出了一个能自动登陆系统不必输入密码的注册表项,抛弃netplwiz命令: Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]"DefaultUserName"="My pc""

解决Centos6.4集群配置ssh免密登陆仍然需要输入密码问题

遇到的问题展示:   Ssh免密登陆配置成功之后仍然需要输入密码,找了很多方法,最后已解决,现把解决办法的详细过程记录下来,希望对你有帮助...       解决办法: 一.准备工作 1.安装ssh服务 执行rpm -qa | grep ssh 若无返回ssh服务,则需要执行下列语句进行安装 sudo yum install openssh-clients sudo yum install openssh-server 2.打开本机的ssh配置文件   删除以下内容每行开头的注释"#"