当前位置:首页 » 编程软件 » 脚本自动输入密码

脚本自动输入密码

发布时间: 2022-07-13 06:43:58

⑴ 如何在脚本中执行scp时自动输入密码

脚本如下:

#!/usr/bin/expect -f

set password 密码

spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径
set timeout 300
expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致
set timeout 300
send "$password\r"
set timeout 300
send "exit\r"

expect eof

附:scp参数
-r:拷贝目录
-c:允许压缩

一个完整的例子

#!/usr/bin/expect -f
set password 123456
#download
spawn scp [email protected]:/root/a.wmv /home/yangyz/
set timeout 300
expect "[email protected]'s password:"
set timeout 300
send "$password\r"
set timeout 300
send "exit\r"
expect eof

#upload
spawn scp /home/yangyz/abc.sql [email protected]:/root/test.sql
set timeout 300
expect "[email protected]'s password:"
set timeout 300
send "$password\r"
set timeout 300
send "exit\r"
expect eof

⑵ 想写一个shell脚本 要求可以自动输入密码

你可以这样试试:
function(){
echo $FORM_pw_|./ibe combine [email protected] key <<!

pw2

#这里面代表已经登录成功,可以直接输入命令。
exit #退出
!
echo
}

上面的是一个方法。如果不行,你可以使用expect工具。

⑶ 如何在脚本里面自动输入密码

shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量、条件、算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多。
但是有时候我们可能会需要实现和交互程序如ftp,telnet服务器等进行交互的功能,这时候我们需要用到shell的自动交互功能.
最简单的例子就是创建用户,我创建100个用户,初始密码为123,那么要是挨着passwd username ,交互性输入密码,那不得疯掉,但是脚本里应该怎么写呢?将密码123,输入到passwd命令?
本文收集了较常用交互方法,并进行了比较和总结。
自动交互方法一:利用命令的自带参数,将标准输入作为手动输入的内容
自动交互最关键的就是交互信息的自动输入,首先联想到文件重定向,在shell编程中有这样一种用法(参考linux与UNIX SHELL编程指南 chapt 5.7):"command <<delimiter p="" 从标准输入中读入,直至遇到delimiter分界符。?
重定向操作符command <<delimiter是一种非常有用的命令,shell将分界符delimiter之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符, p="" shell就知道输入结束了。最常见的delimiter分界符是eof,当然完全可以自定为其他字符。
对于需求1 要求的自动登陆ftp,并作系列操作,则可以用这种方法进行自动交互。代码如下:
[yjwan@test ~]$ ftp -i -n 192.168.21.46 <
user dbftp dbftp101
ls
EOF
下面是得到的结果:
Connected to 192.168.21.46.
220 developerjail FTP server (Version 6.00LS) ready.
331 Password required for dbftp.
230 User dbftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||54281|)
150 Opening ASCII mode data connection for '/bin/ls'.
total 8847424
-rw-r--r-- 1 dbftp www 9055318991 Aug 28 14:28 ewiz90.sql_2010-08-29
226 Transfer complete.
221 Goodbye.
测试可以发现,如上代码使用帐号名dbftp,密码dbftp101成功登陆了ftp服务器,并进入目录,ls出当前目录的文件。
注意事项:
1 这里一定要加-i ,否则必定失败!!
这里ftp用的-I 参数 结束了交互式输入,因此可以用文本的方式自动地输入用户密码以及操作方式
如果不用-I 参数,那么必定要求你手动输入密码的!!那么就达不到自动登陆的要求了
你可以man ftp找到这个参数
-i 关闭多文件传送中的交互式提示。请参考 prompt、mget、mput 和 mdelete 子命令,以取得多文件传送中的提示的描述。
-n 防止在起始连接中的自动登录。否则, ftp 命令会搜索 $HOME/.netrc 登录项,该登录项描述了远程主机的登录和初始化过程。请参考 user 子命令。
2 举一反三:只要是要求输入密码的命令,一般都带有一个参数,允许你从标准输入,输入用户密码,以及操作。
其他常用的自动登陆命令的参数
1) Passwd命令
Linux下 Passwd有参数
--stdin
This option is used to indicate that passwd should read the new password from standard input, which can be a pipe.
所以linux下自动改变用户密码的办法就是
Echo 密码 |passwd –stdin 用户名
Freebsd没有以上参数 注意
他的方法是echo passwd |pw mod user username -h 0
2)smbpasswd
-s
This option causes smbpasswd to be silent (i.e. not issue prompts)
and to read its old and new passwords from standard input, rather
than from /dev/tty (like the passwd(1) program does). This option
is to aid people writing scripts to drive smbpasswd
3)sudo
在shell脚本中需要用root用的来执行指令:
sudo 自动输入密码
echo "password" | sudo -S netstat -tlnp
-S
The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
3 标准输入还可以用以下两种写法:
可以将下面的内容写入到一个文本
然后ftp -I –n ip <文本
或者echo “..” |ftp –I –n ip
都是可以的!
因为他们都满足“有一个标准的输入”这个条件
4 ssh的自动登陆没有这样的自动输入密码的参数
一般都是使用公钥/私钥的方式自动登录
这种文章满街都是,网上google一下ssh自动登陆就可以找到答案。
或者用下面的办法。
自动交互方法2:利用expect脚本自动登陆
这个 expect基本属于一种编程了
基本任何需要交互式登陆的场合,他都可以解决,是相当的牛逼。
只要是第一种办法解决不了的,基本都可以用这种办法。

⑷ 如何在脚本中执行scp时自动输入密码

用Perl或者其他脚本的时候,都会遇到需要输入密码的问题,导致脚本会被中断。

如何才能不被中断,SCP可以自动输入密码呢,脚本顺利执行呢?我用了一个sshpass工具。

1.下载地址:

http://sourceforge.net/projects/sshpass/

2.安装:

./configure

make

make install

3.为了能在任意地方执行命令 cp sshpass
/usr/bin/

4.执行的命令如下:
sshpass -p
$PASSWD scp -o StrictHostKeyChecking=no $CMD

⑸ 如何在bash脚本中执行sudo时自动输入用户密码

先把问题简单化,先不说脚本,先考虑在命令行中运行sudo XXX时不用输入密码。

1)以Ubuntu为例,运行如下两条命令,输出是这个样子就对了:
$ which sudo
/usr/bin/sudo
$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 71288 Feb 28 2013 /usr/bin/sudo

2)运行id命令或者groups命令,看看自己在sudo组里面吗?确保自己在sudo组里面。
(如何加入某个组,这里不讲了,这是另外一个问题)
自己在sudo组里面之后,接下来...

3)sudo cat /etc/sudoers
可以看见%admin ALL=(ALL) ALL
运行sudo vi /etc/sudoers或者sudo gedit /etc/sudoers编辑这个文件
注释掉这一行,加上这一行:

%admin ALL=(ALL) NOPASSWD: ALL

4)继续编辑这个文件/etc/sudoers
假设你的账户叫maggie,增加一行:
maggie ALL=(ALL) NOPASSWD:ALL

5)退出linux,重新登录linux,这时,再运行sudo cat /etc/sudoers看看还需要输入密码吗?

谢谢!请参考。

⑹ 如何在shell脚本中自动输入密码

使用ssh public key..登录就不需要输入密码了。

⑺ 写一个shell脚本,要求可以自动输入密码

#!/bin/bash
echo "li"|geli attach -K /root/ad0s1d.key /dev/ad0s1d
mount /dev/ad0s1d.eli /mnt

这样子试试。
第二行也可以这样:
geli attach -K /root/ad0s1d.key /dev/ad0s1d<<li
再不行只能借助expect命令了。

⑻ 如何编写脚本,使的系统自动输入密码

如果你想学做的话,这个也挺简单的,用TC简单开发工具写一个脚本就可以轻松搞定,如果你不想写的话,可以去TC论坛要别人帮你写,不过我觉得你还是自己写好些,必定不难,看下视频教程就知道怎么做了,因为这个脚本制作工具支持中文编程,很容易学会的。下载地址就用网络搜索TC简单开发或者TC论坛,就可以了啦!

⑼ 关于linux expect脚本的问题,自动输入密码

#!/usr/bin/expect

set time 30
set passwd xxxxx (xxxx是你的密码内容)

spawn sudo
expect "Password:" 引号里是你手动执行sudo时候 。系统返回给你的提示,可以只匹配最后几个字母,
也可以写全
send "$passwd\r"
expect eof

EOF

⑽ shell脚本安装phpmyadmin自动输入用户密码

expect是自动交互程序,可以方便的在shell脚本中自动输入mysql的帐号密码。
shell脚本如何自动输入mysql帐号密码

在deepin linux下默认已安装此程序,首先要获取expect安装程序的路径,可以通过which命令来获取。如果没有安装请自行安装。
shell脚本如何自动输入mysql帐号密码

接下来就是建立一个脚本文件,这里命名为t.sh,然后用vim打开t.sh,在里面编写如下图所示的代码。代码说明如下:

第一句:#!/usr/bin/expect就是在上面获取的expect的安装路径,expect类似于一个shell,所以脚本的第一行指明通过expect来运行下面的指令。

第二句:设置延时为30秒。

第三句:spawn是expect的语句,执行命令前都要加这句

第四句:是发送的mysql root帐号的密码666666,注意后面的\r即回车。

第五句:interact代表执行完留在远程控制台
shell脚本如何自动输入mysql帐号密码

编写完成后,执行vim的wq命令退出保存t.sh。
shell脚本如何自动输入mysql帐号密码

然后执行如下命令给t.sh加上可执行权限。

sudo chmod 755 ./t.sh
shell脚本如何自动输入mysql帐号密码

然后执行t.sh就可以看到mysql自动输入帐号密码登录了。
shell脚本如何自动输入mysql帐号密码

除了上面介绍的使用expect命令外,用户也可以切换到root用户下,在root用户的家目录,建立一个.my.cnf的文件,让mysql本身实现免密码登录,这样在shell脚本中只需要执行mysql命令即可自动登录了,具体可以参考之前发布的经验。

热点内容
vs编译找不到指定项目文件 发布:2025-02-08 12:36:54 浏览:242
怎样用windows服务器搭建网站 发布:2025-02-08 12:27:38 浏览:532
android获取音乐 发布:2025-02-08 12:26:05 浏览:962
存储的数据可以复制吗 发布:2025-02-08 12:20:22 浏览:852
scraino编程 发布:2025-02-08 11:59:41 浏览:265
我的世界服务器进不去该怎么办 发布:2025-02-08 11:47:41 浏览:236
linux的telnet 发布:2025-02-08 11:47:36 浏览:288
压缩袋打折 发布:2025-02-08 11:46:02 浏览:259
c语言结构体题目 发布:2025-02-08 11:46:01 浏览:339
如何svn限制一些外网不能访问 发布:2025-02-08 11:46:00 浏览:992