sshpass 介绍

sshpass 是一个命令行 ssh 客户端,能够用非交互的方式使用账号密码登陆 ssh 服务.

安装

Centos

1
sudo yum install sshpass

Archlinux

1
2
sudo pacman -S sshpass
`

使用

命令行选项

1
2
3
4
5
6
7
8
9
10
11
12
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename 从文件读取密码
-d number 从已经打开的文件描述符种读取密码
-p password 密码
-e 从环境变量 SSHPASS 种读取密码
如果不提供上面参数,将会从标准输入种读取密码

-P prompt Which string should sshpass search for to detect a password prompt
-v 打印连接详情
-h 打印帮助信息
-V 打印版本信息
At most one of -f, -d, -p or -e should be used

常规的用法通过 -p 提供参数

1
sshpass -p 't@uyM59bQ' ssh username@server.example.com

从环境变量读取密码

1
SSHPASS='t@uyM59bQ' sshpass -e ssh -o StrictHostKeyChecking=no vivek@server42.cyberciti.biz

从文件读取密码

1
sshpass -f fileNameHere ssh user@server

通过 rsync 来传输文件

1
rsync --rsh="sshpass -p myPassword ssh -l username" server.example.com:/var/www/html/ /backup/