ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mac设置终端ssh自动登录

2021-05-02 15:02:08  阅读:170  来源: 互联网

标签:脚本 __ set 登录 echo Mac ssh expect


1. 安装expect

brew install expect

2. 编写expect登录脚本

输入 touch login.exp 新建脚本

接着输入 vim ./login.exp 编辑脚本,代码如下:

#!/usr/bin/expect -f

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

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

这样就可以通过命令expect ./login.exp IP地址 用户名 密码来进行登录服务器了。

3. 编写bash脚本

分别输入

touch sshlogin.sh
vim ./sshlogin.sh

在脚本中粘贴以下代码(注意修改脚本中的ip地址用户名密码信息):

#!/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/login.exp"

# menu.sh

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

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

case ${input} in
    1)
    echo -e "${GRN}Linux Tencent qinian${NC}"
    $ssh ip地址 用户名 密码
    sleep 1;;
    2)
    # echo -e "${GRN}Linux Tencent${NC}"
    # $ssh ip地址 用户名 密码
    sleep 1;;
    3)
    exit;;
esac

4. 修改脚本权限

chmod 755 sshlogin.sh

修改完成后就可以使用 ./sshlogin.sh 命令来执行脚本

5. 运行脚本

输入 ./sshlogin.sh 命令来执行脚本,出现以下界面:

image-20210325215920244

输入序号后回车即可。

image-20210325220057506

标签:脚本,__,set,登录,echo,Mac,ssh,expect
来源: https://www.cnblogs.com/fade-color/p/14725696.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有