Linux - sshpass的安装与使用

 

ssh 登陆不能在命令行中指定密码,sshpass 的出现则解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

 

 

安装

 

1、下载sshpass的安装包,并进行解压、编译……

[root@node1 home]# wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz 
[root@node1 home]# tar xvzf sshpass-1.05.tar.gz 
[root@node1 home]# cd sshpass-1.05
[root@node1 sshpass-1.05]# ll
总用量 396
-rw-r--r-- 1 1000 1000  35029 8月   6 2011 aclocal.m4
-rw-r--r-- 1 1000 1000    700 7月  22 2010 AUTHORS
-rw-r--r-- 1 1000 1000   1455 8月   6 2011 ChangeLog
-rw-r--r-- 1 1000 1000   4107 8月   6 2011 config.h.in
-rwxr-xr-x 1 1000 1000 201436 8月   6 2011 configure
-rw-r--r-- 1 1000 1000    865 8月   6 2011 configure.ac
-rw-r--r-- 1 1000 1000  17992 7月  22 2010 COPYING
-rwxr-xr-x 1 1000 1000  18615 8月   5 2011 depcomp
-rw-r--r-- 1 1000 1000  15578 8月   5 2011 INSTALL
-rwxr-xr-x 1 1000 1000  13663 8月   5 2011 install-sh
-rw-r--r-- 1 1000 1000  13179 8月   6 2011 main.c
-rw-r--r-- 1 1000 1000    145 7月  22 2010 Makefile.am
-rw-r--r-- 1 1000 1000  22973 8月   6 2011 Makefile.in
-rwxr-xr-x 1 1000 1000  11419 8月   5 2011 missing
-rw-r--r-- 1 1000 1000    213 7月  22 2010 NEWS
-rw-r--r-- 1 1000 1000      0 7月  22 2010 README
-rw-r--r-- 1 1000 1000   4742 8月   6 2011 sshpass.1

[root@node1 sshpass-1.05]# ./configure 
[root@node1 sshpass-1.05]# make 
[root@node1 sshpass-1.05]# make install

2、然后执行sshpass,可以查看到相关的帮助信息

[root@node1 sshpass-1.05]# sshpass
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used
[root@node1 sshpass-1.05]#

 

 

使用

# 使用sshpass访问node2节点并执行hostname命令
[root@node1 sshpass-1.05]# sshpass -p 'harley' ssh root@192.168.56.112 "hostname"
node2
[root@node1 sshpass-1.05]#

可以通过sshpass进行一套未配置免密的集群的基础环境检查等批量操作。

 

 

Q&A

Q1:执行 ./configure编译时报错

[root@node1 sshpass-1.05]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/0-transwarp-home/sshpass-1.05':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

然后根据 checking for gcc... no检查了gcc的安装情况,然后安装了gcc

[root@node1 sshpass-1.05]# yum list installed | grep gcc
libgcc.x86_64           4.4.7-4.el6     @anaconda-CentOS-201311272149.x86_64/6.5
[root@node1 sshpass-1.05]#
[root@node1 sshpass-1.05]# yum provides gcc
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
gcc-4.4.7-4.el6.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
Repo        : os65
Matched from:
[root@node1 sshpass-1.05]# yum install gcc
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: cpp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-4.el6.x86_64
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-                     1.2.el6.x86_64
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.                     2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libmpfr.so.1()(64bit) for package: cpp-4.4.7-4.el6.x8                     6_64
--> Running transaction check
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch            Version                 Repository     Size
================================================================================
Installing:
 gcc                x86_64          4.4.7-4.el6             os65           10 M
Installing for dependencies:
 cloog-ppl          x86_64          0.15.7-1.2.el6          os65           93 k
 cpp                x86_64          4.4.7-4.el6             os65          3.7 M
 mpfr               x86_64          2.4.1-6.el6             os65          157 k
 ppl                x86_64          0.10.2-11.el6           os65          1.3 M

Transaction Summary
================================================================================
Install       5 Package(s)

Total download size: 15 M
Installed size: 33 M
Is this ok [y/N]: y
Downloading Packages:
--------------------------------------------------------------------------------
Total                                            75 MB/s |  15 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : mpfr-2.4.1-6.el6.x86_64                                      1/5
  Installing : cpp-4.4.7-4.el6.x86_64                                       2/5
  Installing : ppl-0.10.2-11.el6.x86_64                                     3/5
  Installing : cloog-ppl-0.15.7-1.2.el6.x86_64                              4/5
  Installing : gcc-4.4.7-4.el6.x86_64                                       5/5
  Verifying  : gcc-4.4.7-4.el6.x86_64                                       1/5
  Verifying  : ppl-0.10.2-11.el6.x86_64                                     2/5
  Verifying  : cloog-ppl-0.15.7-1.2.el6.x86_64                              3/5
  Verifying  : mpfr-2.4.1-6.el6.x86_64                                      4/5
  Verifying  : cpp-4.4.7-4.el6.x86_64                                       5/5

Installed:
  gcc.x86_64 0:4.4.7-4.el6

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6          cpp.x86_64 0:4.4.7-4.el6
  mpfr.x86_64 0:2.4.1-6.el6                  ppl.x86_64 0:0.10.2-11.el6

Complete!
[root@node1 sshpass-1.05]#

再次执行 ./configure 编译时,发现内容比较多,看上去很正常,就继续往下走了。

[root@node1 sshpass-1.05]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for unistd.h... (cached) yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for an ANSI C-conforming const... yes
checking for pid_t... yes
checking for ssize_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... void
checking for select... yes
checking for posix_openpt... yes
checking for strdup... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
[root@node1 sshpass-1.05]#

 

posted @ 2023-05-28 20:01  HOUHUILIN  阅读(391)  评论(0编辑  收藏  举报