sshpass 用法举例


背景

在Linux后台中,经常会用到ssh、scp等命令。需要进行认证,手动输入密码,是交互式的过程。
当将ssh、scp等命令做成自动化脚本时,可能需要非交互式的登录过程,此时可以用sshpass。

使用举例

使用-p参数指定登录密码

# 免密码登录 $ sshpass -p password ssh username@host  # 远程执行命令 $ sshpass -p password ssh username@host <cmd>  # 通过scp上传文件 $ sshpass -p password scp local_file root@host:remote_file  # 通过scp下载文件 $ sshpass -p password scp root@host:remote_file local_file 

忽略RSA Key检查信息

第一次认证时,一般会有RSA key检查的提示:

The authenticity of host ’10.x.x.x (10.x.x.x)' can't be established. RSA key fingerprint is a4:eb:8c:7d:2a:ef:d6:1c:a3:0c:e8:e5:00:d2:eb:60. Are you sure you want to continue connecting (yes/no)?

可以使用-o StrictHostKeychecking=no选项来忽略key检查信息。
如:

   sshpass -p "$SSH_PASSWD" ssh root@"$host" -o StrictHostKeyChecking=no "$@" 2>/dev/null 

其他方式输入密码

sshpass支持从文件中导入密码或者从环境变量中导入密码,使用举例:

#从文件读取密码 $> echo "password" > userpasswd $> sshpass -f userpasswd ssh username@x.x.x.x #从环境变量获取密码 $> export SSHPASS="password" $> sshpass -e ssh username@x.x.x.x 

ssh用法:
ssh -p1433 paasadmin@10.145.167.65 'sudo sh -c "echo \"sshd:10.145.166.*\">>/etc/hosts.allow"'


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM