Mac终端非交互登录远程服务器

现状

对于研发来说,经常需要在各个环境的服务器中来回切换,来跟进项目日志,快速定位问题。
在终端使用 ssh 命令来登录各个服务器,最重要的是你不仅要记得各个服务器的 ip、用户名、密码等信息,而且每次的登录都需要手动输入以上信息,这些个重复机械的动作,可以考虑让机器来做就好了,为我们节约时间。

实现方案

Expect + Alias 配置 实现彻底的方案(无堡垒机)

  • expect脚本文件,命名为***.exp,其中 * 替换成任意的即可,文件内容如下
#!/usr/bin/expect

set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
    "(yes/no)?"
    {send "yes\n";exp_continue}
    "password:"
    {send "[lindex $argv 2]\n"}
}
interact
  • 将上面的脚本文件放入路径 /usr/local/bin
  • 修改脚本文件的权限,命令如下chmod 755 /usr/local/bin/***.exp
  • vim ~/.bash_profile,在文件中加入如下代码
alias kaifaji="***.exp 用户名 IP 密码"
alias ci="***.exp 用户名 IP 密码"
// 可定义需要的环境,有堡垒机的服务器不支持
  • 生效文件,命令如下source ~/.bash_profile
  • 最后验证,在终端输入,上面定义的别名回车即可。例如:kaifaji 回车

特别声明

因为本人终端装了oh-my-zsh,故有效的配置文件是~/.zshrc,所以别名放置在该配置文件。其他操作不变。

你可能感兴趣的:(【粒米成箩】Mac)