ssh非交互式密码输入

ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码。

它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

其默认没有安装,需要手动安装,方法如下:

sshpass下载地址: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安装完成,输入命令 sshpass 如出现如下提示即安装成功:

#从命令行方式传递密码 -p指定密码

$ sshpass -p ‘123456‘ ssh [email protected]_ip

$ sshpass -p ‘123456‘ scp [email protected]_ip:/home/test/t ./tmp/

/sys/class/net/eth0/statistics
网卡流量统计;

时间: 2024-10-14 00:31:34

ssh非交互式密码输入的相关文章

ssh非交互式密码授权远程执行脚本

公司有上百台服务器,需要为每台服务器都执行一个脚本,因为所有服务器的账号密码都是一样的,所以可以不用搭建ansible等自动化运维工具,我们直接通过ssh远程执行即可完成 本文以三台服务器为例,系统版本:Centos7.3 1.安装sshpass cd /etc/yum.repos.d/ wgethttp://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo yum instal

Linux下使用SSH非交互式远程执行命令脚本---ssh无密码登陆

通过SSH命令远程执行命令首先需要建立相关主机间的信任关系.否则,在执行命令前SSH命令会提示你输入远程主机的密码.建立主机间信任关系的方法如下-即ssh无密码输入: 假设我们有两台主机.主机名分别为linuxa和linuxb.首先在linuxa上以当前用户运行如下命令生成本主机的公钥和私钥文件: ssh-keygen -t rsa     上述命令执行后,隐藏目录~/.ssh下会出现两个文件:id_rsa和id_rsa.pub.其中,id_rsa.pub为公钥文件. 将该文件的内容追加到对端主

ssh执行非交互式命令

如果你想用脚本自动化登录到某台机子上,然后在上边执行个命令,怎么办呢? 可以使用ssh的非交互式命令 ssh [email protected] "/home/hczhang/bin/build.sh" 这里可以用expect模拟键盘输入将密码输入,也可以用无密码登录,具体就是将自己的公钥放在对端的authorized_keys里,登录的时候就不用输密码了,就是建立两台机子之间的信任关系,这里不多讲了. 那么如果你想执行sudo命令怎么办呢?比如: ssh [email protect

(转)SSH批量分发管理&非交互式expect

目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3.3 利用rsync来实现增量备份 1.4 SSH批量管理分发脚本实战 1.5 SSH批量管理总结 2 非交互式expect 2.1 非交互式生成密钥及实现批量管理 2.2 一键批量安装httpd服务 2.3 一键自动化50台规模集群网站 1 SSH批量分发管理 基于口令的,如何实现批量管理:expe

Linux非交互式修改用户密码

Linux非交互式修改用户密码echo "root:123456789" | chpasswd使用命令修改密码useradd www;echo 123456789 | passwd --stdin www添加www用户并且修改www用户密码(echo "123456789";sleep 1;echo "123456789") | passwd > /dev/null通过sleep也可以在输入的时候将密码修改,该方式不推荐 原文地址:http

实现免密码输入 ssh 登录

实现免密码输入 ssh 登录假设 A 为客户机器, B 为目标机:要达到的目的:A 机器 ssh 登录 B 机器无需输入密码:加密方式选 rsa|dsa 均可以,默认 dsa做法:1.登录 A 机器2. ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa, id_rsa.pub 或 id_dsa,id_dsa.pub3.将 .pub 文件复制到 B 机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_key

非交互式创建账号和修改密码

ubuntu系统 1. 创建用户 带家目录,登录权限 [email protected]:/home/leco# useradd -m -s /bin/bash apple 2. 非交互式修改密码 [email protected]:/home/leco# echo "apple:111111" | chpasswd centos系统 echo "123456"|passwd --stdin  leco

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

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

两种Linux下非交互式命令的实现

一.概述 在Linux环境,有多种实现自动化的脚本语言,如Shell.Python.Perl.Tcl等.Shell语言因与Shell外壳结合紧密,是最常见的实现自动化的脚本语言. 同时,在Linux环境中存在大量功能单一的小工具--通常它们在指定输入后,立即就可获得输出,例如echo.cat等字符串/文本打印工具,又或者是如sed.awk等最常用的字符串编辑工具.通过编写Shell脚本,我们可以反复利用这些小工具来实现一些自动化的批处理. 在少数情况下,我们也需要用到一些交互式的工具,例如pas