mac下使用sshpass实现ssh记住密码

From: http://tinyhema.iteye.com/blog/2093795

由于有一些场景不能使用ssh私钥来实现免登,因此需要想其它办法解决一下这个问题。


安装sshpass

试图使用homebrew安装

Shell代码  收藏代码
  1. $ brew install sshpass  
  2. Error: No available formula for sshpass  
  3. We won't add sshpass because it makes it too easy for novice SSH users to  
  4. ruin SSH's security.  

这个萌卖的好。。。。

使用homebrew强制安装
Shell代码  收藏代码
  1. brew install https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb  

成功了。。。

编译安装
Shell代码  收藏代码
  1. wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz  
  2. tar xvzf sshpass-1.05.tar.gz  
  3. ./configure --prefix=/usr/local/Cellar/sshpass/1.05  
  4. make  
  5. sudo make install  

编译安装的步骤是从brew的步骤中copy出来的,绝对可行。其中./configure 后面的prefix路径可以去掉,这样就会安装到默认目录中。

使用方式
Java代码  收藏代码
  1. sshpass -p 'ssh_password' ssh xxx.xxx.xxx.xxx  

可以看到这种方式其实还是要在命令里指定host+密码登录,还是不够方便。期待的方式是只需要指定host即可,密码神马的,能自己处理。

简单的使用方式
写一个脚本,记录一些常用的用户名与密码,通过简单的选择即可完成ssh登录。
创建一个文件sshp。
Shell代码  收藏代码
  1. #!/bin/bash  
  2. cat <<MENU  
  3.     a   =>  10.101.81.238  
  4.     10.101.81.238   =>  10.101.81.238  
  5.     b   =>  192.168.4.151  
  6.     192.168.4.151   =>  192.168.4.151  
  7.     c   =>  192.168.4.2  
  8.     192.168.4.2     =>  192.168.4.2  
  9.   
  10. >>> 请输入ip或序号 <<<  
  11. MENU  
  12.     echo -n "Your choose:"  
  13.     read host  
  14.     case "$host" in  
  15.         a|10.101.81.238)  
  16.             exec /usr/local/bin/sshpass -p 123456  ssh root@10.101.81.238 -p22  
  17.             ;;  
  18.         b|192.168.4.151)  
  19.             exec /usr/local/bin/sshpass -p 'sdfsdf'  ssh root@192.168.4.151 -p22  
  20.             ;;  
  21.         c|192.168.4.2)  
  22.             exec /usr/local/bin/sshpass -p 'wfssfs'  ssh root@192.168.4.2 -p22  
  23.             ;;  
  24.         *)  
  25.         echo "Error, No host"  
  26.         ;;  
  27.     esac  


使用方法
Shell代码  收藏代码
  1. $ sshp  
  2.     a   =>  10.101.81.238  
  3.     10.101.81.238   =>  10.101.81.238  
  4.     b   =>  192.168.4.151  
  5.     192.168.4.151   =>  192.168.4.151  
  6.     c   =>  192.168.4.2  
  7.     192.168.4.2     =>  192.168.4.2  
  8.   
  9. >>> 请输入ip或序号 <<<  
  10. Your choose:a  
  11. # ssh login success  


可以看到,相比第一种方法,这种模式要简单很多。

更简单的使用方法,应该是只需要输入 sshp host,就可以完成ssh登录。

更简单的使用方式
使用一个文件存储host、password对,自行根据host匹配密码,并登录。

创建一个脚本,名为sshp,内容如下。
Shell代码  收藏代码
  1. #!/bin/bash  
  2.   
  3. RC_ERR_NO_HOST=11  
  4. RC_ERR_NO_PASSWORD=21  
  5. RC_SUCCESS=0  
  6.   
  7. pass_path=~/.ssh/sshp_pass  
  8.   
  9. host=$1  
  10.   
  11. # arguments   
  12. if [ -z $host ]; then  
  13.     echo "ERR_NO_HOST, please input host."  
  14.     exit $RC_ERR_NO_HOST    
  15. fi  
  16.   
  17. # read file  
  18. pwd=`grep $host\  $pass_path | cut -d' ' -f 2`  
  19. if [ -z $pwd ]; then  
  20.     echo "ERR_NO_PASSWORD, please record password first. file path $pass_path"  
  21.     exit $RC_ERR_NO_PASSWORD  
  22. fi  
  23.   
  24. exec sshpass -p $pwd  ssh root@$host -p22  
  25. exit $RC_SUCCESS  


使用方法
Shell代码  收藏代码
  1. sshp host  


创建一个文件 ~/.ssh/sshp_pass,存放 host 与密码数据,格式为"host password"。
例如
Shell代码  收藏代码
  1. 10.101.81.238 123456  


除了可以动态指定host以外,还可以实现 用户名、端口的自定义,暂时没有需求,就这样吧。^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESXI忘记密码怎么办?

忘记ESX root用户的密码怎么办? 以单用户模式进入COS&#xff0c;然后修改root密码&#xff0c;既可搞定。第1步&#xff1a;打开/重启ESX主机图1第2步&#xff1a;到GRUB菜单处 (图2) &#xff0c;用键盘上下键&#xff0c;将光标放在“VMware ESX 4.0”上&#xff0c;按“a”…

TCPDUMP/LIBPCAP 1-由零开始

简介 TCPDUMP是强大的网络包分析器&#xff0c;可以在线或离线抓包&#xff0c;设置过滤条件等操作。 LIBPCAP是十分简洁易用的C/C网络流量抓包库&#xff1b;实际上TCPDUMP就是基于LIBPCAP实现的一个应用程序。为什么要学会工具和库的使用 工欲善其事必先利其器&#xff0c…

TCPDUMP/LIBPCAP 2-搭建环境

1. 实验平台   Linux 发行版本众多&#xff0c;考虑到大部分开发者的习惯&#xff0c;因此决定采用桌面版系统&#xff0c;具体为 CentOS-6.5-x86_64。系统内核版本为&#xff1a;2.6.32。尽管内核版本较低&#xff0c;但考虑到兼容性和稳定性&#xff0c;选择了此版本系统作…

使用jquery的blockui插件显示弹出层

使用jquery的blockui插件显示弹出层 Posted on 2011-04-14 16:34 孤独者 阅读(9975) 评论(0) 编辑 收藏 在做网站的开发过程中&#xff0c;可能需要使用弹出层&#xff0c;使用jquery的blockui插件可以很轻松的实现这个效果。blockui可以在你发送ajax请求的时候&#xff0c;显…

提升用户体验,你不得不知道的事儿——三种提醒框的微技巧

大家都知道无论是android开发还是其他的开发&#xff0c;用户的体验都是很重要的事儿&#xff0c;下面就android开发中的三种提醒方式&#xff0c;Toast,SnackBar,Dialog做一些细节上的处理&#xff0c;或许能让你的产品更有用户亲和力。 1&#xff09;Toast Toast是一个轻量级…

el-table列宽设置百分比无效;el-table使用min-width设置百分比;el-table百分比设置无效;

废话不多说&#xff0c;直接给每个el-table-column&#xff0c;设置 width"auto" min-width"25%"即可。 总的百分比还是要等于100%哈。 点赞收藏吧 感谢 代码可以直接复制使用&#xff1a; <template><div style"width:1300px;">&…

VIM使用系统剪切板

在 Linux 终端模式下使用 vim 编辑器时发现经常需要在vim打开的文本文档进行复制粘贴&#xff0c;那么下面就跟着我的思路一步步往下走吧。 一、首先确认当前 vim 配置是不是支持系统剪切板&#xff0c;可以在终端模式下输入命令&#xff1a; vim --version | grep clipboard…

python操作Excel读写--使用xlrd

From: http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html 一、安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装&#xff0c;前提是已经安装了python 环境。 也可以在命令行执行&#xff1a;easy_install xlrd (注意权限) 二、使用介绍…

el-table自动充满,且无滚动条;el-table某列的列宽自适应,其他列按比例分配。

情景一&#xff1a;例如首列按照内容自适应展开&#xff0c;其余列有各自的比例。这样设置&#xff0c;就不会出现滚动条。 注意点&#xff1a; 给需要自适应展开的列加 :width"flexColumnWidth"计算方法 就可以自适应展开需要给余下所有的列都设置 width“auto” mi…

DataGridView控件中显示图片及其注意事项 【z】

windows Forms编程里面有一个DataGridView控件&#xff0c;它不光是可以显示数据&#xff0c;可以显示按钮&#xff0c;复选框&#xff0c;甚至还可以显示图片。这些图片可以来自于数据库&#xff08;用二进制的方式存储的&#xff09;&#xff0c;也可以来自文件系统。下面是一…

在winform上内嵌入其它的程序

这段代码很有意义,用于把一个程序的界面嵌入到我们自己程序的某个指定窗体上. 比如在某个项目里,我需要把基恩士的激光扫描轮廓显示给客户看,但是激光的DLL中并没有这种功能提供. 于是我想先启动激光的官方程序用以显示轮廓, 然后再把这种显示界面嵌入到我自己程序的界面上指定…

SPI总线时序

SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚上只占用四根线&#xff0c;节约了芯片的管脚&#xff0c;同时为PCB的布局上节省空间&#xff0c;提供方便&#xff0c;正是出于这种简单易用的特性&#xff0c;现在越来…

js计算浮点数出现小数;解决js计算小数问题;js数组相加出现小数;

原博1 原博2 方案1和方案2都是有效的 注意参数一定要是数字 而不能是字符串 否则会计算错误 情景&#xff1a; 在计算浮点数时候&#xff0c;出现多余小数。 例如&#xff1a; 1.11 1 2.1100000000000003 为什么计算小数会出现误差&#xff1f; 浮点数值的最高进度是17位…

VMware安装系统时没有弹出分区设置

在安装虚拟机系统的时候&#xff0c;有时候会遇到在安装一些镜像时没有弹出分区设置的画面&#xff0c;比如&#xff0c;我在使用 VMware 安装 CentOS 的时候&#xff0c;在选择完镜像&#xff0c;设置好启动安装的时候系统自动为我划分了 3 个分区&#xff1a;/boot、/、swap分…

如何在postgresql中模拟oracle的dual表,来测试数据库最基本的连接功能?

还好&#xff0c;网上弄到的&#xff0c;&#xff0c;没有dual的数据库&#xff0c;可以试图用select函数不带from数据表的方式来实现返回值。 一段测试代码&#xff1a; try:conn psycopg2.connect(databasedb.service_name, userdb.username, passwordpassword, hostdb.ip, …

vue+element实现树状表格的增删改查;使用el-table树形数据与懒加载实现树状表格增删改查

以下代码可以直接复制使用 一、情景&#xff1a; 列表是一个树状表格&#xff0c;可以无限添加下级&#xff0c;以及对列表的某一行进行增删改查&#xff08;目前查没有写&#xff09;。 原博链接 二、本篇是在原博主的代码基础上添加了部分功能。 功能1&#xff1a; 给树状表格…

ISCSI 1-由零开始

iSCSI的概念 iSCSI&#xff0c;即Internet SCSI&#xff0c;是IETF制订的一项标准&#xff0c;用于将SCSI数据块映射为以太网数据包。从根本上说&#xff0c;它是一种基于IP Storage理论的新型存储技术&#xff0c;该技术将存储行业广泛应用的SCSI接口技术与IP网络技术相结合&a…

存储技术与iSCSI

本章主要介绍基于IP SAN的网络存储iSCSI。iSCSI技术以其低廉的构建成本和优秀的存储性能&#xff0c;博得了很多CIO和存储管理员的喜爱&#xff0c;目前陆续进入企业应用领域&#xff0c;推动了企业的存储环境向集中式转变。虽然&#xff0c;目前对于iSCSI应该在什么样的环境中…

lvs和HA的高可用性

Heartbeat实现Lvs高可用和HA高可用效果图如下1、heartbeat的介绍Heartbeat 项目是 Linux-HA 工程的一个组成部分&#xff0c;它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件&#xff0c;在 Heartbeat 项目里&#xff0c;由 heartbeat 模块实现了这…

输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;

场景&#xff1a; –要求1&#xff1a;输入框只能输入数字&#xff0c;可以使正数、负数、0&#xff0c;小数点最多保留两位。 –要求2&#xff1a;不需要自动补齐小数点&#xff0c;也不需要自动四舍五入。 element-ui的数字输入框el-input-number只能满足要求1&#xff0c;所…