iterm2+sshpass+homebrew 配置远程服务器

2,091 阅读3分钟

前言

公司有多态服务器,由于安全等原因,每次登陆的时候都需要输入一次密码,安全是安全了,但是对于我们经常要上上下下的人来说,简直就是慢性谋杀。为了让登陆再方便起来,咱们必须得解决这个问题。本来想着下一个新的软件去管理,后面发现其实sshpass可以搭配iterm2完成这个功能了,只需要配置一下即可。配置的过程中,遇到一些坑,记录下来,遇到类似问题的小伙伴可以参考下

坑坑洼洼

尝试使用brew安装

brew install sshpass

结果卡死在

brew install sshpass
Updating Homebrew...

这个很可能是镜像资源在国外的问题,咱们把它换成国内的试下

# 替换brew.git
cd `brew --repo`
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

# 替换homebrew-core.git
cd `brew --repo`/Library/Taps/homebrew/homebrew-core
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

# 更新一下
brew update

再运行安装命令

brew install sshpass

结果发现依然卡死在这一步

$ brew install sshpass
==> Downloading http://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz

curl: (7) Failed to connect to sourceforge.net port 80: Operation timed out
Error: An exception occurred within a child process:
  DownloadError: Failed to download resource "sshpass"
Download failed: http://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz

后面想着用迅雷下载下来,然后直接丢到homebrew的cache区让它基于此安装

迅雷下载
结果依然不顺。难!后面去 Stack Overflow 看,有说这样下载的

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

后面试了一下不行,依然报错,😌心累!!!

后面打开这个文件发现里面这样的文件

require 'formula'

class Sshpass < Formula
  url 'http://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz'
  homepage 'http://sourceforge.net/projects/sshpass'
  sha256 'c6324fcee608b99a58f9870157dfa754837f8c48be3df0f5e2f3accf145dee60'

  def install
    system "./configure", "--disable-debug", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"
    system "make install"
  end

  def test
    system "sshpass"
  end
end

发现它其实走的还是刚才那个链接下载,其实我们最终只需要找到能够下载 sshpass-1.06.tar.gz 这个文件的链接替换即可。寻寻觅觅又几年。终于找到替换了之前的下载链接,现在 sshpass.rb 这个文件,看起来像这样

require 'formula'

class Sshpass < Formula
  url 'https://fossies.org/linux/privat/sshpass-1.06.tar.gz'
  homepage 'http://sourceforge.net/projects/sshpass'
  sha256 'c6324fcee608b99a58f9870157dfa754837f8c48be3df0f5e2f3accf145dee60'

  def install
    system "./configure", "--disable-debug", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"
    system "make install"
  end

  def test
    system "sshpass"
  end
end

现在我们只需要在修改后的 sshpass.rb 文件丢到brew能够安装的缓存区安装即可

cd `brew --cache`

# 移动刚才修改的 sshpass.rb 文件至 缓存区
mv ~/Downloads/sshpass.rb ./

brew install ./sshpass.rb

# 测试一下
sshpass

发现安装成功

接下来我们打开iterm2的配置项,快捷键 command + ,

如图在 profiles 中添加一个服务器配置项,在 General 中填入名称,配置好快捷键,并设置登录命令,登录命令的规则是

sshpass -p 你的密码 ssh 用户名@主机名

image.png

接下来我们用刚才的配置的快捷键即可快速登录服务器啦

control + command + T

参考资料

Mac下更换Homebrew的更新源为国内加速镜像

Mac brew update 非常慢... 更换brew镜像源解决

如何在Mac上安装sshpass?

mac中使用brew安装软件,下载太慢怎么办?

tail_qrcode.jpg