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…

JavaSE第九天20160815

抽象与接口 抽象:abstracta) 修饰类&#xff1a;抽象类&#xff0c;抽象类不能实例化(不能new)&#xff0c;只能使用抽象类的子类。抽象类也有构造方法(子类会在自己构造方法的第一行调用父类的构造方法)。 b) 修饰方法&#xff1a;抽象方法。抽象方法只有方法…

mac下nginx搭配php-fpm解析php文件

From: http://ju.outofmemory.cn/entry/74778 1. 为单个项目添加nginx的php-fpm配置. 在server中添加php-fpm的配置. server{listen 80;server_name demo.local;index index.html index.htm index.php;root /path/to;location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastc…

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;显…

JS页面跳转大全

所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转&#xff0c;如我们打开的是A页面&#xff0c;通过javsrcipt脚本就会跳转到B页面。目前很多垃圾站经常用js跳转将正常页面跳转到广告页面&#xff0c;当然也有一些网站为了追求吸引人的视觉效果&#xff0c;把一些栏…

CentOS SSH公钥登录问题

From: http://segmentfault.com/q/1010000000445726 内网&#xff0c;想做ssh root公钥登录&#xff0c;配置好之后还是提示输入密码&#xff0c;现象&#xff1a; 在服务器端使用其他端口开放sshd&#xff1a; $/usr/sbin/sshd -p 1234此时客户端可以无密码登录&#xff0c;但…

TCPDUMP/LIBPCAP 3-PCAP's MAN手册(1)

概要 #include <pcap/pcap.h> 说明 PCAP提供为抓包系统提供高级接口。网络上的所有数据包&#xff0c;即使是发往其他主机的数据包&#xff0c;都可以通过这种机制访问。它还支持将捕获的数据包保存到“savefile”&#xff0c;和从“savefile”中读取数据包。 打开捕…

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

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

分享:wkhtmltoimage开源工具的基本应用

wkhtmltoimage开源工具的基本应用 http://my.oschina.net/lidonghao/blog/90083

SVN:冲突解决 合并别人的修改

在项目中&#xff0c;基本不可避免多个人同时参与一个项目&#xff0c;因此就可能会出现多个人同时修改一个文件的情况&#xff0c;就不可避免的会出现冲突。svn已经很聪明了&#xff0c;如果你和别人对于同一个文件的修改之间不存在重叠&#xff08;比如你在文件最开始增加了一…

Error: Could not find or load main class

在 java 编程中如果遇到此错误&#xff0c;那么检查下 classpath。 必须确保把 .class 文件的路径添加到 classpath 中&#xff0c; 如果是在当前路径&#xff0c;那么就添加字符 . 到 classpath 中。注意不同系统环境下使用的路径分隔符是不同的&#xff0c;在 windows 下是分…

极客导航

评&#xff1a;集合产品技术与方案集合的方案 http://www.gogeeks.cn/job/2/Java%E5%B7%A5%E7%A8%8B%E5%B8%88转载于:https://www.cnblogs.com/jhj117/p/5779226.html

freemarker 分页逻辑

<#-- 分页组件需要传入的参数 pageUrl ,用来生成的html地址&#xff0c;在pageUrl中必须有{page}在生成html地址的时候会自动把页码给赋值上去。页码起始值为1pageNum 最大显示页 默认9beforPage 前显示页 默认3afterPage 后显示页 默认3countPage 总页数 必须传入curren…

linux上SVN解决冲突的办法

From: http://blog.csdn.net/bravezhe/article/details/7396151 工程师A修改了a.txt的第一行&#xff0c;提交了。 工程师B也修改了a.txt的第一行&#xff0c;然后执行svn up&#xff0c;这时SVN提示了&#xff1a;&#xff08;以下&#xff0c;你开始扮演工程师B的角色了&…

循环队列及C语言实现三

在之前的博客中给出了设计循环队列的思路以及源码&#xff0c;这些可都是经过我长期大数据测试的验证哦。当然&#xff0c;现在的很多开源项目和一些封装好的类或接口也都有类似的队列实现方法&#xff0c;之所以我还在使用自己写的这一套方法&#xff0c;主要是因为灵活性较大…

【转】提高PHP性能的53个技巧

PHP技巧汇总:提高PHP性能的53个技巧用单引号代替双引号来包含字符串&#xff0c;这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量&#xff0c;单引号则不会&#xff0c;注意&#xff1a;只有echo能这么做&#xff0c;它是一种可以把多个字符串当作参数的函数译注&a…

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;">&…

Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?...

http://blog.csdn.net/fhm727/article/details/5220003 1、什么是匿名内部类&#xff1f; 内部类&#xff0c;存在于另一个类内部的类&#xff0c;而匿名内部类&#xff0c;顾名思义&#xff0c;就是没有名字的内部类。 2、为什么需要匿名内部类&#xff1f; 每个inner clas…