当前位置: 首页 > news >正文

sshpass 实现的SSH免交互密码登录和ARM移植

sshpass在ubuntu上的测试

安装:

sudo apt-get install sshpass 

实例: 

sshpass -p 'yourpassword' ssh root@192.168.5.103

这可以避免一次交互, 

sshpass -p "root" ssh root@192.168.5.103 

脚本的写法:

#!/bin/bash
export SSHPASS='root'
msg=$(sshpass -e ssh root@192.168.5.103 ls /home/root/)
echo $msg

源码下载

网址:Non-interactive ssh password auth - Browse /sshpass at SourceForge.net

目前的最新版本是1.10,下载后解压

tar zxvf sshpass-1.10.tar.gz

交叉编译脚本:

文件命名为build.sh

#!/bin/bash
set -e# 配置交叉编译环境变量
ARM_GCC_PATH="/usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf"
export PATH=${ARM_GCC_PATH}/bin:$PATH
export CC=arm-linux-gnueabihf-gcc
export CFLAGS="-I${ARM_GCC_PATH}/include"#全局变量
install_path=`pwd`/install_arm
local_rootfs_path=/home/lkmao/nfsroot/myrootfs
cur_dir=`pwd`
SUDO=""function build_sshpath() {echo "install path : $install_path"mkdir -p $install_path# 配置项目./configure --host=arm-linux-gnueabihf# 编译项目make# 安装到指定目录make install prefix=$install_pathfile $install_path/bin/sshpass
}function port_sshpath() {echo "port sshpath to rootfs"if [ -z "$local_rootfs_path" ] ; thenecho "local_rootfs_path is null"returnfi${SUDO} cp $install_path/bin/sshpass $local_rootfs_path/usr/bin${SUDO} chown root:root $local_rootfs_path/usr/bin/sshpassecho "port sshpath to rootfs done"
}
function check_root() {if [ `whoami` == "root" ];thenSUDO=""echo "root user"        elseSUDO="sudo"echo "not root user"fi
}#int main(int argc, char *argv[]){ check_rootshell_full_name=$0shell_short_name="${shell_full_name##*/}"echo shell_short_name=$shell_short_nameif [ "$shell_short_name" == "build.sh" ];thenecho "build sshpath"build_sshpathport_sshpathif [ ! -e "port.sh" ];thenln -s build.sh port.sh || echo "port.sh link build.sh failed"echo "get root authority"fiif [ ! -e "port.sh" ];then${SUDO} ln -s build.sh port.shfielif [ "$shell_short_name" == "port.sh" ];thenecho "port.sh"port_sshpathecho "port sshpath to rootfs done"fiecho "task done"exit 0
# }

测试

命令行测试:

sshpass -p "password" ssh username@192.168.5.5

脚本测试: 

#!/bin/sh
export SSHPASS='root'
msg=$(sshpass -e ssh root@192.168.5.103 ls /home/root/)
echo $msg

文件发送测试

sshpass -p "lkmao" scp sshpass_test.sh lkmao@192.168.5.111:/home/lkmao/ 

小结 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JSON数组
  • opencv实战项目二十四:棋盘格相机内参标定
  • SpinalHDL之结构(一)
  • 水下目标检测数据集 urpc2021
  • 智创未来,景联文科技提供全方位数据采集服务
  • CAD中的spline详解
  • Vue自定义指令以及项目中封装过的自定义指令
  • ACE之ACE_Reactor_Notify
  • C++ List (带你一篇文章搞定C++中的List类)
  • 如何申请和使用免费SSL证书
  • 加速开发体验:为 Android Studio 设置国内镜像源
  • Web植物管理系统-下位机部分
  • java项目之基于springboot的贸易行业crm系统(源码+文档)
  • “Fast-forward“ in git-pull result
  • 音视频入门基础:AAC专题(3)——AAC的ADTS格式简介
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • express如何解决request entity too large问题
  • Java多态
  • springboot_database项目介绍
  • TypeScript实现数据结构(一)栈,队列,链表
  • 从0到1:PostCSS 插件开发最佳实践
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 老板让我十分钟上手nx-admin
  • 前端
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何设计一个微型分布式架构?
  • 三栏布局总结
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 一天一个设计模式之JS实现——适配器模式
  • 用Canvas画一棵二叉树
  • 我们雇佣了一只大猴子...
  • ​Redis 实现计数器和限速器的
  • ​马来语翻译中文去哪比较好?
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #define与typedef区别
  • #微信小程序:微信小程序常见的配置传值
  • (12)目标检测_SSD基于pytorch搭建代码
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (规划)24届春招和25届暑假实习路线准备规划
  • (九十四)函数和二维数组
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (顺序)容器的好伴侣 --- 容器适配器
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (译)2019年前端性能优化清单 — 下篇
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net MVC + EF搭建学生管理系统
  • .Net Web项目创建比较不错的参考文章