Linux:sshpass远程免密登录

简介

远程自动化脚本中常用sshpass进行免密登录。
参数:
-f filename:从文件中获取密码
-d number:使用数字作为获取密码的文件描述符
-p password:指定明文本密码输入(安全性较差)
-e 从环境变量SSHPASS获取密码

一、常用方法

1、直接远程连接某主机

sshpass -p {密码} ssh {用户名}@{主机IP}

2、远程连接指定ssh的端口

sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}

3、从密码文件读取文件内容作为密码去远程连接主机

sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}

4、从远程主机上拉取文件到本地

sshpass -p {密码} scp {用户名}@{主机IP}😒{远程主机目录} ${本地主机目录}

5、将主机目录文件拷贝至远程主机目录

sshpass -p {密码} scp 本地主机目录用户名 @ 主机 I P : {本地主机目录} {用户名}@{主机IP}: 本地主机目录用户名@主机IP:{远程主机目录}

6、远程连接主机并执行命令

sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} ‘rm -rf /tmp/test’
-o StrictHostKeyChecking=no 忽略密码提示

二、远程登录例子

#!/bin/bash
#make sure that you have install the sshpass.#or install it by cmd: sudo apt-get install sshpass

BOARD_NAME_IP={用户名}@{主机IP}
BOARD_PASSWORD=123

sshpass -p $BOARD_PASSWORD ssh $BOARD_NAME_IP -tt > /dev/null 2>&1 << remotessh
rm -rf 20220821
cd Downloads
mkdir 20220822
tar -zcvf 20220822.tar.gz 20220822
exit

remotessh

说明:
-tt:类似tty界面;
/dev/null 2>&1
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
<<remotessh:限定ssh登录后的使用范围,remotessh为名称,可以随意取。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值