33-Linux命令【sshpass】
一、介绍
ssh登录需要与用户进行交互,需要用户输入密码
sshpass 允许使用-p参数指定明文密码
1、sshpass安装:
先安装epel yum install -y epel-release yum repolist 安装完成epel之后,就可以按照sshpass了 yum install -y sshpass 验证: sshpass -V
2、使用介绍:
使用方法: sshpass -p "yourpassword" ssh yourusername@ip 等价于 ssh root@ip 再输入密码 当远程主机端口不再是22默认端口时候: sshpass -p "password" ssh -p 8443 username@ip
二、sshpass 用法
1.指定密码
sshpass -p password ssh -p port user@ip 登录 sshpass -p password ssh -p port user@ip " cmd " 执行命令 sshpass -p password scp user@ip:remote_file local scp远程拉取文件
2.从文件中读取密码
echo ‘password‘ >mypasswd
sshpass -f mypasswd ssh user@ip
Notes:
使用ssh第一次登录某台服务器时,会有提示“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会不好使
解决办法:可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决
sshpass -p password ssh -o StrictHostKeyChecking=no user@ip
除此之外还可以修改ssh的配置文件,在所有机器上修改/etc/ssh/ssh_config (mac中为/etc/ssh_config)文件中设置StrictHostKeyChecking no即可(默认为 #StrictHostKeyChecking ask )
3.从环境变量中获取ssh密码
export SSHPASS= "password "
sshpass -e ssh user@ip