600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > brew 无法安装iterm2_Mac安装sshpass 替代spawn自动登录脚本(解决rz sz问题)

brew 无法安装iterm2_Mac安装sshpass 替代spawn自动登录脚本(解决rz sz问题)

时间:2020-08-22 23:47:41

相关推荐

brew 无法安装iterm2_Mac安装sshpass 替代spawn自动登录脚本(解决rz sz问题)

Mac安装sshpass 替代spawn自动登录脚本(解决rz sz问题)

很早前就发现 如果通过 spawn 脚本去登录 服务器,那么 rz sz 指令是无法使用的,具体为什么,网上说就是不支持!。。无奈 找到另外一个 sshpass 这个命令去解决

前言

附上我的 item2log.sh 文件 在我 /usr/local/bin/下面

大致意思就是 读取输入参数 然后通过spawn命令去 实现自动登录,很无奈 rz sz 无法使用

#! /usr/bin/expectset timeout 30spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]expect {"(yes/no)?" {send "yes\n";exp_continue} "password:" {send "[lindex $argv 3]\n"}}interact

上面的脚本 再配合 iterm2 使用 ,即可方便登录

好了 记录一下上面的就行了,下面开始说 sshpass

Mac 安装 sshpass(解决rz sz )

由于我要实现 在Mac 上使用 iterm2 登录各个服务器,那么我要在mac 上安装 sshpass 来使用这个命令去登录

参考

/article/idetail/7891c859e64b4ec6a40a5cb672ba6d43.html

/liyuxing6639801/article/details/103172437

网上好多都失效了,-11-20以下方法亲测可行。

brew install /kadwanev/bigboybrew/master/Library/Formula/sshpass.rb1

安装成功后执行 sshpass出现以下效果,说明安装成功。

➜ ~ sshpassUsage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename Take password to use from file -d number Use number as file descriptor for getting password -p password Provide password as argument (security unwise) -e Password is passed as env-var "SSHPASS" With no parameters - password will be taken from stdin -P prompt Which string should sshpass search for to detect a password prompt -v Be verbose about what you're doing -h Show help (this screen) -V Print version informationAt most one of -f, -d, -p or -e should be used12345678910111213

安装成功了,那就把密码记下来吧 -p 是指密码的意思

vim ~/.bashrc1alias jump="sshpass -p '666' ssh host"1

载入文件 source ~/.bashrc, 具体是哪个文件根据自身情况决定,我把.bashrc 加在了.zshrc里,所以我执行的是source ~/.zshrc

接下来就是验证成果是时候了。

➜ ~ jumpLast login: Wed Nov 20 21:59:08 from 172.16.113.151Welcome to Alibaba Cloud Elastic Compute Service !123

一开始我是按照 上面这个方式 放入 mac 的 ~/.bash_profile 通过 alias ,但是我发现 可能我后面有很多其他服务那么 这样 jump 不方便,我自己写了个脚本

后续 只要输入jump ali 就可以跳转登录到 ali 输入 jump --list 就列出所有的key 和描述

#!/bin/bashNULLSTR="--list"if [[ $1 = $NULLSTR ]] then echo "ali: (阿里云) 47.98.241.126 root password"echo "xuni: (虚拟机-centos7桌面版) 192.168.29.101 root root"elif [[ $1 = "ali" ]] thenecho "ali: 47.98.241.126 root password"exec sshpass -p 'password' ssh root@47.98.241.126elif [[ $1 = "xuni" ]] thenecho "xuni: 192.168.29.101 root root"exec sshpass -p 'root' ssh root@192.168.29.101fi

注意要把它放到 /bin/下面 然后赋予权限 并且是 chmod +x jump.sh

安装 lrzsz 和 配置 iterm2 详细请看 我另一篇 文章 iterm2如何安装rz sz

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。