Shell命令sshpass非交互SSH密码验证

#安装sshpasssshpass

下载地址:http://sourceforge.net/projects/sshpass/

下载为一个 tar.gz的压缩包。

$ tar -zxvf sshpass-1.05.tar.gz

$ cd sshpass-1.05

$ ./configure --prefix=/opt/sshpass

#指定安装目录

$ make

$ make install

$ cp /opt/sshpass/bin/sshpass /usr/bin/

安装完成

#查看帮助

sshpass -h

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

#!/bin/bash

cd $(dirname $0)

source ./config.sh

date=`date +%Y-%m-%d`

#上传DUMP脚本到服务端

sshpass -pyour_pwd scp -P22 ./dump.sh your_user@192.168.1.10:~/

#-o StrictHostKeyChecking=no 避免第一次登录出现公钥检查。

sshpass -pyour_pwd scp -o StrictHostKeyChecking=no -P22 ./dump.sh your_user@192.168.1.10:~/

#登陆到服务端地址,执行DUMP脚本,将执行结果写入本地文件

sshpass -pyour_pwd ssh -p22
your_user @192.168.1.10 "sh ~/dump.sh" >local_result.txt

#使用文件中的密码

sshpass -f pwd.file ssh -p22
your_user@192.168.1.10 "sh ~/dump.sh" >>local_result.txt

#从环境变量(SSHPASS)读取密码

sshpass -e ssh -p22 your_user@192.168.1.10 "sh ~/dump.sh" >>local_result.txt

时间: 2024-10-11 15:44:30

Shell命令sshpass非交互SSH密码验证的相关文章

sshpass-Linux命令之非交互SSH密码验证

ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码. 它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行.文件.环境变量中读取. 下载如下: https://sourceforge.net/projects/sshpass/ 解压,安装 [[email protected] opt]# tar zxvf sshpass-1.06.tar.gz [[email prote

sshpass之非交互SSH密码验证

SSH登陆不能在命令行中指定密码.sshpass用于非交互SSH的密码验证,一般用在shell脚本中,无须手动输入密码.它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行.文件.环境变量中读取. 一.安装sshpass: 1. 通过源码编译安装 # http://sourceforge.net/projects/sshpass/ 下载地址 $ tar -zxvf sshpass-xx.tar.gz $ ./configure $ make && make ins

交换机配置ssh密码验证登录方式

交换机配置ssh密码验证登录方式 一.背景: 1.由于PC机串口不支持热插拔,请不要在交换机带电的情况下,将串口插入或者拔出PC机.当连接PC和交换机时,请先安装配置电缆的DB-9端到PC机,再连接RJ-45到交换机:在拆下时,先拔出RJ-45端,再拔下DB-9端. 2.恢复出厂设置的交换机 <H3C>reset saved-configuration 3.重启设备 必须重启才能生效 二.VLAN配置 1.删除vlan 系统模式下:undo vlan ID号 2.创建vlan [H3C]vla

sshpass: 用于非交互的ssh 密码验证

ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass 的出现,解决了这一问题.它允许你用 -p 参数指定明文密码,然后直接登录远程服务器. 它支持密码从命令行,文件,环境变量中读取 $> sshpass -h Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename Take password to use from file -d number Use number as file descr

开启SUSE Linux的SSH密码登陆

一般来说,刚安装好的SUSE Linux系统默认是可以使用ssh2登陆的,但是不能使用ssh密码登陆.(目前我接触到的suse10.suse11,suse12系统刚安装好都是不支持ssh密码验证登陆的) (1)登陆系统 ① 如果使用的是SecureCRT,Xshell等支持SSH2协议的工具,可以先使用SSH2协议登录系统. ② 如果开启了telnet,也可以使用telnet登陆. ③ 如果有系统管理员权限,直接通过KVM等管理工具操作就行. (2)打开SSH密码登陆,操作如下: 关闭防火墙(和

shell 脚本实战笔记(8)--ssh免密码输入执行命令

前言: ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.本文讲解了两种方式, 一种借助expect脚本, 一种借助sshpass来实现. *) 借助expect脚本来实现1. expect不是系统自带的工具, 需要安装yum install expect -y 2. expect脚本的编写规则 1. [#!/usr/bin/expect] 告知系统脚

【转】sshpass:一个很棒的免交互 SSH 登录工具,但不要用在生产服务器上

译自:http://www.tecmint.com/sshpass-non-interactive-ssh-login-shell-script-ssh-password/作者: Aaron Kili原创:LCTT https://linux.cn/article-8086-1.html译者: geekpi 在大多数情况下,Linux 系统管理员使用 SSH 登录到程 Linux 服务器时,要么是通过密码,要么是无密码 SSH 登录[1]或基于密钥的 SSH 身份验证. 如果你想自动在 SSH

[转] 关于linux下通过shell命令(自动)修改用户密码

关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自动修改本地用户密码及远程机器的用户密码.对做自动化测试提供了自动修改用户密码的原理及方法. 修改本地用户密码:1.交互配置本地用户:以root用户: passwd <username>Changing password for user dewang.New UNIX password: BAD

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