mac下使用sshpass实现ssh记住密码
来源:互联网 发布:java高并发与服务器 编辑:程序博客网 时间:2024/05/07 23:57
由于有一些场景不能使用ssh私钥来实现免登,因此需要想其它办法解决一下这个问题。
安装sshpass
试图使用homebrew安装
Shell代码 收藏代码
$ brew install sshpass Error: No available formula for sshpass We won't add sshpass because it makes it too easy for novice SSH users to ruin SSH's security.
这个萌卖的好。。。。
使用homebrew强制安装
Shell代码 收藏代码
brew install https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb
成功了。。。
编译安装
Shell代码 收藏代码
wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz tar xvzf sshpass-1.05.tar.gz ./configure --prefix=/usr/local/Cellar/sshpass/1.05 make sudo make install
编译安装的步骤是从brew的步骤中copy出来的,绝对可行。其中./configure 后面的prefix路径可以去掉,这样就会安装到默认目录中。
使用方式
Java代码 收藏代码
sshpass -p 'ssh_password' ssh xxx.xxx.xxx.xxx
可以看到这种方式其实还是要在命令里指定host+密码登录,还是不够方便。期待的方式是只需要指定host即可,密码神马的,能自己处理。
简单的使用方式
写一个脚本,记录一些常用的用户名与密码,通过简单的选择即可完成ssh登录。
创建一个文件sshp。
Shell代码 收藏代码
#!/bin/bash cat <<MENU a => 10.101.81.238 10.101.81.238 => 10.101.81.238 b => 192.168.4.151 192.168.4.151 => 192.168.4.151 c => 192.168.4.2 192.168.4.2 => 192.168.4.2 >>> 请输入ip或序号 <<< MENU echo -n "Your choose:" read host case "$host" in a|10.101.81.238) exec /usr/local/bin/sshpass -p 123456 ssh root@10.101.81.238 -p22 ;; b|192.168.4.151) exec /usr/local/bin/sshpass -p 'sdfsdf' ssh root@192.168.4.151 -p22 ;; c|192.168.4.2) exec /usr/local/bin/sshpass -p 'wfssfs' ssh root@192.168.4.2 -p22 ;; *) echo "Error, No host" ;; esac
使用方法
Shell代码 收藏代码
$ sshp a => 10.101.81.238 10.101.81.238 => 10.101.81.238 b => 192.168.4.151 192.168.4.151 => 192.168.4.151 c => 192.168.4.2 192.168.4.2 => 192.168.4.2 >>> 请输入ip或序号 <<< Your choose:a # ssh login success
可以看到,相比第一种方法,这种模式要简单很多。
更简单的使用方法,应该是只需要输入 sshp host,就可以完成ssh登录。
更简单的使用方式
使用一个文件存储host、password对,自行根据host匹配密码,并登录。
创建一个脚本,名为sshp,内容如下。
Shell代码 收藏代码
#!/bin/bash RC_ERR_NO_HOST=11 RC_ERR_NO_PASSWORD=21 RC_SUCCESS=0 pass_path=~/.ssh/sshp_pass host=$1 # arguments if [ -z $host ]; then echo "ERR_NO_HOST, please input host." exit $RC_ERR_NO_HOST fi # read file pwd=`grep $host\ $pass_path | cut -d' ' -f 2` if [ -z $pwd ]; then echo "ERR_NO_PASSWORD, please record password first. file path $pass_path" exit $RC_ERR_NO_PASSWORD fi exec sshpass -p $pwd ssh root@$host -p22 exit $RC_SUCCESS
使用方法
Shell代码 收藏代码
sshp host
创建一个文件 ~/.ssh/sshp_pass,存放 host 与密码数据,格式为”host password”。
例如
Shell代码 收藏代码
10.101.81.238 123456
原文地址:http://tinyhema.iteye.com/blog/2093795
- mac下使用sshpass实现ssh记住密码
- mac下使用sshpass实现ssh记住密码
- 使用ssh记住密码
- Mac下,使用sshpass让iterm2支持多ssh登录信息保存
- Mac下,使用sshpass让iterm2支持多ssh登录信息保存
- sshpass实现ssh自动输入密码登陆服务器
- 使用sshpass进行ssh/scp/sftp/自动输入密码
- 使用 sshpass 用于非交互的 ssh 密码验证登录
- ssh 携带密码登录-sshpass
- sshpass---linux下使用ssh客户端的好帮手
- 使用SSHPass自动输入密码
- mac secureCRT 记住密码
- mac使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- 用sshpass实现ssh的自动登陆
- 用sshpass实现ssh的自动登陆
- 使用SharedPreference实现记住用户名和密码
- 使用SharedPreferences实现记住密码功能
- android使用SharedPreferences实现记住账号密码
- UIImage 图片处理:截图,缩放,设定大小,存储
- 线程通信(2)
- linux screen 命令详解
- js之闭包
- Swift2.0之guard语句
- mac下使用sshpass实现ssh记住密码
- 数据结构与算法——二分查找算法
- ALOHA协议简介
- struts1跳入指定方法
- Sicily 1620. SCVs and minerals 星际争霸简单策略
- 1 JMS
- transient关键字
- 用百宝云搭建一个自己的网络验证系统的过程
- 基于 Jenkins 快速搭建持续集成环境