首页 > 其他分享 >Mac ssh自动输入密码

Mac ssh自动输入密码

时间:2024-07-17 11:43:06浏览次数:14  
标签:__ autossh echo 密码 Mac ssh exp Linux

1. 需要在Mac上安装expect,如果已经安装过可以省略这一步

Mac 上安装一般是使用homebrew安装,在终端上输入以下命令安装。

brew install expect

如果还未安装过homebrew的朋友参考https://www.cnblogs.com/orzs/p/18306760,或自行百度。

2. 编写脚本

第一个脚本

autossh.exp

#!/usr/bin/expect -f
# 定义第一个空格后的第一个变量是host
set hostname [lindex $argv 0]
# 定义第一个空格后的第二个变量是用户名
set username [lindex $argv 1]
# 定义第一个空格后的第三个变量是密码
set password [lindex $argv 2]
# 定义第一个空格后的第四个变量是端口
set port [lindex $argv 3]
# 等待登录输入密码的时间,单位秒
set timeout 30
set force_conservative 1
if {$force_conservative} {
  set send_slow {128 .1}
}
# 执行登录ssh
spawn ssh -p $port $username@$hostname;

expect {
    # 出现yes/no 时输入yes
    "yes/no" {
    send -s "yes\r"; exp_continue
    }
    # 出现password 自动输入变量密码
    "password" {
        send -s "$password\r";
    }
}
# 执行过后把权限交给终端
interact

 

脚本保存为autossh.exp,执行这个脚本的命令expect autossh.exp ip 用户名 密码 端口,例如:expect autossh.exp 127.0.0.1 root 12345 22,这个脚本是用来ssh登录的。

第二个脚本

autossh.sh

#!/bin/bash
clear
RED='\033[0;31m'
GRN='\033[0;32m'
BLU='\033[0;34m'
NC='\033[0m'
# 获取执行login.exp路径
pwdpath=$(cd "$(dirname "$0")";pwd)
# ssh登录脚本指令, 注意这里要跟脚本命名要一致
ssh="expect $pwdpath/autossh.exp"

# menu.sh

echo "---------------------------------------------------------------"
echo "|              __                                             |"
echo "|            _/  |_  ____ ______      ____  __ __  ____       |"
echo "|            \   __\/  _ \\____ \    / ___\|  |  \/    \       |"
echo "|             |  | (  <_> )  |_> >  / /_/  >  |  /   |  \     |"
echo "|             |__|  \____/|   __/   \___  /|____/|___|  /     |"
echo "|                         |__|     /_____/            \/      |"
echo "---------------------------------------------------------------"

# 服务器提示目录,可以根据自己需求修改
echo "--------------------------------------"
echo "please enter your Server:"
echo -e "(1) ${GRN}Linux Aliyun Hang Zhou ${NC}"
echo "(2) Linux Tencent "echo "(3) Linux dev "echo "(4) Linux release"
echo "(5) exit"
echo "--------------------------------------"
read -p "请选择服务器:" input

case ${input} in
    1)
    echo -e "${GRN}Linux Aliyun Hang Zhou ${NC}"
    $ssh ip地址  用户名 密码 端口
        sleep 1;;
    2)
    echo -e "${GRN}Linux Tencent${NC}"
    ssh -i 私钥地址 -p 端口 用户名@ip地址
    sleep 1;;
    3)
    echo "Linux dev"
    $ssh ip地址 用户名 密码 端口
    sleep 1;;
    4)
    echo "Linux release"
    $ssh ip地址 用户名 密码 端口
    sleep 1;;
    5)
    exit;;
esac

 

将这个脚本保存成autossh.sh,并添加权限,注意,需要跟autossh.exp保存在相同目录

chmod +x autossh.sh

在脚本目录下使用

bash autossh.sh

就会出现类似以下界面(根据实际配置显示)

 

输入选择就可以登录指定服务器

3.需要注意的地方

(1)注意两个脚本必须处于同一个目录下,注意替换自己的服务器参数

标签:__,autossh,echo,密码,Mac,ssh,exp,Linux
From: https://www.cnblogs.com/orzs/p/18306956

相关文章

  • Mac新手教程:程序坞里的启动台图标消失了如何解决?
    启动台是Mac系统里放应用程序的地方,用户可以通过启动台打开软件列表。一般为了方便使用会把它放在程序坞,但一些用户程序坞里的启动台的图标不见了,如何找回呢?1、打开Mac上的访达应用程序,2、点击访达窗口左边的“应用程序”,3、在应用程序里,找到启动台,4、将启动台图标拖动到程序坞,......
  • ChatGPT:为什么说 JWT 是无状态的,无法实现 Token 的作废,例如用户登出系统、修改密码等
    ChatGPT:为什么说JWT是无状态的,无法实现Token的作废,例如用户登出系统、修改密码等场景JWT(JSONWebToken)被称为无状态(stateless)是因为它本身不存储会话状态或会话数据在服务端。这意味着每个JWT包含了足够的信息来验证用户的身份和权限,而不需要在服务端存储任何关于......
  • MarkText A simple and elegant markdown editor, available for Linux, macOS and Wi
    1、这个工具挺不错的,先上一张图,来自github页面截图:2、这个工具是开源的项目,开源地址:https://github.com/marktext官网地址:www.marktext.cc/三个平台都有:可以直接点上面的按钮,找到自己所用电脑的平台,就可以下载。也可以转到Githubreleasepage下载。3、安装:点击【安......
  • 不存在的misc密码
    工具CyberChef千千秀字随波逐流工作室CTF在线工具Bugkubase家族base16666C61677B3132333435363738397Dbase32MZWGCZ33GEZDGNBVGY3TQOL5base45U.C5EC$PFQF60R6J%6%47Z2base583sCWBxPYGkdVfKBgHsruabase62ko4RLHSQGg5zPcaYwLozbase64ZmxhZ3sxMjM0NTY3ODl9b......
  • 「Mac&Linux」一次基于X和蒲公英组网的远程桌面尝试
    因为某些原因我必须在远程条件下使用带图形环境的Ubuntu工作。虽然说有向日葵和ToDesk这种远程控制工具,但是后者经常莫名其妙蹦个错误告诉我连不上网络(指的是Mac上的这个软件连不到它公司自己的网络,连我这个账号在ToDesk上有哪些在线设备都不知道),前者怎么说呢...我已经受够远程桌......
  • Mac电脑硬盘无法读取怎么办 Mac硬盘读取慢会导致电脑卡吗
    Mac电脑作为众多用户的工作与生活伙伴,其稳定性和效率至关重要。然而,当遭遇硬盘无法读取或读取速度缓慢的问题时,这无疑会给用户带来极大的不便,影响日常操作与数据访问。下面我们来看看Mac电脑硬盘无法读取怎么办,Mac硬盘读取慢会导致电脑卡吗的相关内容。一、Mac电脑硬盘无法读......
  • GESP C++ 三级真题(2023年6月)密码合规
    【问题描述】网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:1、只能由a-z之间26个小写字母、A-Z之间26个大写字母、0-9之间10个数字以及!@#$四个特殊字符构成。2、密码最短长度:6个字符,密码最大长度:12个字......
  • Python3禁用AD账号与重置AD账号密码
    Python3禁用AD账号#LDAP服务器地址、端口号及连接参数importldap3fromldap3importServer,Connection,ALLserver=Server('10.10.22.14',port=389,get_info=ALL)conn=Connection(server,user='admin',password='yyy',auto_bind=True)username=......
  • 写了一个json小工具,希望大家体验(Mac平台)
    用rust写了一个json小工具“JSONPICKER”,欢迎大家试用:https://github.com/davelet/json-picker/releases/tag/V0.2动机是平常开发的时候,经常遇到大段json,里面的很多字段是不需要的。我所在的项目组在接口对接上出现了reponse达到数兆字节的情况市面上已经有不少json工具,......
  • 修改ssh终端显示主机名格式
    显示参数表 参数作用\d代表日期,格式为weekdaymonthdate,例如:“MonAug1”\H完整的主机名称\h仅取主机的第一个名字,如上例,则为fc4,.linux则被省略\t显示时间为24小时格式,如:HH:MM:SS\T显示时间为12小时格式\A显示时间为24小时格式:HH:MM\u当前用户的......