当前位置: 首页 > article >正文

mac连接linux服务器

1、mac连接linux服务器

# ssh -p 22  root@192.168.1.15

2、mac指定密码连接linux服务器

(1) 先安装sshpass,下载后解压执行 ./configure && make && makeinstall 
https://sourceforge.net/projects/sshpass/
(2) 连接linux
# sshpass -p \/\\\[\!\'\@wen12\$ ssh -p 22 root@192.168.1.15  # 复杂密码需要加转义符,转义后的密码是 /\[!'@wen12$
(3) 把密码写入文件中通过-f指定文件登录
# cat pass.txt
/\[!'@wen12$
# sshpass -f pass.txt ssh -p 22 root@192.168.1.15   # pass.txt文件中的复杂密码无需转义

3、mac指定私钥和私钥密码短语连接linux服务器

(1) 服务器先生成密钥对并把生成的私钥传给mac机,为了方便查询可以把私钥重命名
# ssh-keygen -t rsa
# ssh-keygen -t rsa -P \/\\\[\!\'\@wen12\$     # 可以通过-P指定密码短语,特殊符号要转义,转义后密码/\[!’@wen12$ 
# cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys
(2)mac指定私钥连接linux服务器
# ssh -p 22 -i /Users/wenqiang/Documents/myjumpserver/k8s-master-192.168.1.15-id_rsa root@192.168.1.15
(3) 如果生成私钥时指定了密码短语,ssh登录linux服务器时会每次都询问密码,可以先在mac上添加私钥密码短语,然后再指定私钥连接linux服务器就不会每次都询问私钥密码了
# ssh-add -K 私钥     # 执行该条命令会提示输入私钥密码并自动保存私钥密码到mac钥匙串中,如果更换了私钥只需要在执行改命令即可,执行ssh-add 后无需知道秘钥也可以直接登录linux服务器

4、mac通过命令终端编写连接linux服务器工具

wenqiang@wq password % cat ../myjumpserver 
#!/bin/bash
# 修改或添加服务器信息需要改三处: 1>服务器数组列表 2>函数中case条件  3>私钥或密码文件名称

# 公司服务器数组
companyserverlist=(
gitlib_北区微软-192.168.1.111
esxi_腾讯云上海-192.168.1.112
)
# 个人服务器数组
personserverlist=(
etcd1_虚拟机-192.168.1.111
etcd2-192.168.1.112
etcd3-192.168.1.113
)
# 密码文件存放目录和私钥文件存放目录
passdir='/Users/wenqiang/Documents/myjumpserver/password'
privadir='/Users/wenqiang/Documents/myjumpserver/privatekey'
# 登录公司服务器函数
function companyserver(){
  select hosts in "${companyserverlist[@]}"
  do
    case ${hosts} in 
      'gitlib_北区微软-192.168.1.111')
        sshpass -f ${passdir}/${hosts} ssh -p 22 root@${hosts#*-}  # ${hosts#*-}表示取变量开头到第一个-之外内容
        ;;
      'esxi_腾讯云上海-192.168.1.112')
        ssh -p 22 -i ${privadir}/${hosts} root@${hosts#*-}
        ;;
      *)
        ;;
    esac
    echo "---enter选择公司服务器---"
  done
}
# 登录个人服务器函数
function personserver(){
  select hosts in "${personserverlist[@]}"
  do
    case ${hosts} in
      'etcd1_虚拟机-192.168.1.111')
        sshpass -f ${passdir}/${hosts} ssh -p 22 root@${hosts#*-}
        ;;
      'etcd2-192.168.1.112')
        sshpass -f ${passdir}/${hosts} ssh -p 22 root@${hosts#*-}
        ;;
      'etcd3-192.168.1.113')
        sshpass -f ${passdir}/${hosts} ssh -p 22 root@${hosts#*-}
        ;;
      *)
        ;;
    esac
    echo "---enter选择个人服务器---"
  done

}

select values in '公司服务器' '个人服务器'
do
  case ${values} in
    '公司服务器')
      companyserver
      ;;

    '个人服务器')
      personserver
      ;;
    *)
      ;;
  esac
done


# 把myjumpserver脚本加入环境变量,重启终端生效
wenqiang@wq ~ % cat ~/.zshrc 
MYJUMPSERVER="/Users/wenqiang/Documents/myjumpserver/"
export PATH=$PATH:$MYJUMPSERVER

# 查看效果
wenqiang@wq ~ % myjumpserver 
1) 公司服务器
2) 个人服务器
#? 2
---按enter选择要登录的【个人服务器】---
1) k8s-master-192.168.1.15
2) k8s-node-192.168.1.16
#? 1
Last login: Sat Dec  2 20:06:22 2023 from 192.168.1.9
[root@k8s-master ~]#

http://www.kler.cn/a/528359.html

相关文章:

  • 51单片机开发:温度传感器
  • C#,入门教程(10)——常量、变量与命名规则的基础知识
  • 告别复杂,拥抱简洁:用plusDays(7)代替plus(7, ChronoUnit.DAYS)
  • Android --- CameraX讲解
  • Java 大视界 -- Java 大数据在自动驾驶中的数据处理与决策支持(68)
  • SAP内向交货单详解
  • 4 Hadoop 面试真题
  • linux的用法
  • 数据结构初探:链表之单链表篇
  • 玉米苗和杂草识别分割数据集labelme格式1997张3类别
  • 【Linux】opencv在arm64上提示找不到libjasper-dev
  • 【涟漪散点图】——1
  • C#从XmlDocument提取完整字符串
  • Spring Boot 实例解析:配置文件
  • oracle:子查询
  • Autogen_core源码:_subscription.py
  • https的原理
  • Cesium+Vue3教程(011):打造数字城市
  • 网络工程师 (12)软件开发与测试
  • CNN的各种知识点(三):有关于VGG16 的结构展开的问题(1)
  • 【C++篇】哈希表
  • Maya的id贴图
  • Linux网络 HTTP cookie 与 session
  • html的字符实体和颜色表示
  • Web3技术详解
  • Notepad++消除生成bak文件