在 OSX Mavericks 上安装 sshpass

首次使用 Ansible 设置服务器时,您需要将 ssh 凭据直接传递给 Ansible 以设置 ssh 密钥。这是通过使用 sshpass 程序完成的,该程序允许 Ansible 将您的用户凭据直接传递给 ssh,以便打开与服务器的连接。sshpass 程序可以使用 apt 或 yum 包管理器轻松安装在 Linux 系统上,但在 OSX 上,您需要手动安装它。

为了在 OSX 上安装命令行软件,您需要一些与 Xcode 捆绑在一起的命令行工具。Xcode 和命令行工具是 Apple 提供的免费程序,可在 Appstore 上获得。安装 Xcode 后,您需要打开它并安装命令行工具。您可以通过转至首选项 > 下载 > 命令行工具并单击安装按钮来执行此操作。安装并设置完所有内容后,您可以继续安装 sshpass。

sshpass 程序是一个开源项目,目前在 sourceforge 上可用。您可以手动下载最新版本,也可以使用以下命令从 sourceforge 下载 sshpass tar,然后解压缩。

curl -O -L http://downloads.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz && tar xvzf sshpass-1.05.tar.gz

这将创建一个名为“sshpass-1.05”的目录,在终端中打开该目录并运行以下命令。这将配置、编译和安装 sshpass 程序。

./configure
make
sudo make install

完成后,您可以使用 -V 标志运行 sshpass 以查看安装是否已完成并查看当前安装的版本。

$ sshpass -V
sshpass 1.05 (C) 2006-2011 Lingnu Open Source Consulting Ltd.
This program is free software, and can be distributed under the terms of the GPL
See the COPYING file for more information.

我应该注意到,即使通过 Ansible,依赖 sshpass 与服务器交互也是一种糟糕的安全做法。这是因为您将把 ssh 凭证放入命令行,甚至放入您的代码库中。