如何在 Mac 上安装 sshpass?

Posted

技术标签:

【中文标题】如何在 Mac 上安装 sshpass?【英文标题】:How to install sshpass on Mac? 【发布时间】:2015-11-22 04:57:54 【问题描述】:

我想从我的 Mac 自动 ssh 登录。

它确实有一个简单的解决方案:

sshpass -p my_password ssh m_username@hostname

但我的问题是在我的 Mac 上安装 sshpass。

【问题讨论】:

既然可以使用 ssh 密钥对,为什么还要使用 sshpass?更安全,不会在进程表中暴露密码。 在 OSX 上运行命令ssh-keygen -b 2048。它将生成一个密钥对并将它们存储在~/.ssh. 中作为id_rsa(私钥)和id_rsa.pub(公钥)。将id_rsa.pub复制到linux目录~/.ssh/,并将文件命名为authorized_keys。从这里开始,当您连接到 linux 时,您将不再需要密码。将使用私钥/公钥对。 仅针对可能试图遵循 @alvits 的非常有用的建议的其他人:1) 在您的 本地 机器上生成 id_rsa 文件和 2) scp按照建议将id_rsa.pub 复制到服务器 的相应文件夹,3) 重命名服务器 上的id_ras.pub 文件。 以上答案不回答 OP 的问题。不错的选择,但没有解释如何在 Mac 上安装 sshpass。在某些情况下,您无法复制到远程系统(我的是嵌入式只读文件系统)。因此,像 sshpass 这样的东西是进入远程的更好方法。 虽然评论告知风险是件好事,但假设用户可以简单地安装 SSH 密钥而拒绝直接回答是无益的。尝试处理根目录为只读的嵌入式操作系统。然后,您的选择是不断输入密码、玩 Hunt-the-homebrew-tap 游戏或编写 Expect。 【参考方案1】:

这里有关于如何安装 sshpass 的说明:

https://gist.github.com/arunoda/7790979

对于 Mac,您需要安装 xcode 和命令行工具,然后使用非官方 Homewbrew 命令:

curl -L https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb > sshpass.rb && brew install sshpass.rb && rm sshpass.rb

【讨论】:

2020 年我发现this 是最佳答案 不幸的是,这对我不起作用Error: Calling Non-checksummed download of sshpass formula file from an arbitrary URL is disabled! Use 'brew extract' or 'brew create' and 'brew tap-new' to create a formula file in a tap on GitHub instead. 2021 年更新curl -L https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb > sshpass.rb && brew install sshpass.rb && rm sshpass.rb Brew 现在有水龙头,请查看其他一些答案...【参考方案2】:

几年过去了,现在有一个适当的 Homebrew Tap 用于 sshpass,由 Aleks Hudochenkov 维护。要从此点击安装sshpass,请运行:

brew install hudochenkov/sshpass/sshpass

点击source

【讨论】:

源代码在哪里?在不知道代码的情况下使用 sshpass 之类的东西很关键 @muuvmuuv,是的。如果您查看that tap 中的the formula,您会看到它从downloads.sourceforge.net/project/sshpass/sshpass/1.06/… 下载源代码并在本地构建它。 错误:您的 CLT 不支持 macOS 11。我使用 11.2。 与@ikreb、Your CLT does not support macOS 11. 在最新版本的 Big Sur 上的错误相同。 @kjdion84 这对我有帮助:sudo rm -rf /Library/Developer/CommandLineToolssudo xcode-select --install【参考方案3】:

2020 年的另一个选择是这个自制水龙头,由 esolitos 维护

brew install esolitos/ipa/sshpass

【讨论】:

这是从字面上回答问题的唯一答案。对此存在担忧 - 一个小回购可能会变得流氓(并且不会立即被注意到)。但这是一个答案。建议用户首先用尽所有可能的用例,因为可能还有其他更简单的答案(例如,如果您正在处理一个未在主目录下存储 authorized_keys 的 Dropbear 主机,这就是您的分阶段公钥被拒绝的原因等)【参考方案4】:

lukesUbuntu 来自 github 提供的解决方案对我有用:

只需使用 brew

$ brew install http://git.io/sshpass.rb

【讨论】:

注意:这是过时的,指向旧版本的 sshpass @DevisLucato 是的,对于一个 LF 最新版本的 sshpass,带有 sshpass src 的 xcode 将引领潮流。 sourceforge.net/projects/sshpass 祝你好运。 这已经过时了 - 这里的评论:***.com/a/62623099/1817774 是最新的。谢谢@smammy Error: Non-checksummed download of sshpass formula file from an arbitrary URL is unsupported! brew extract` 或 brew createbrew tap-new 在 GitHub 上点击创建公式文件。`【参考方案5】:

以下对我有用

curl -O -L  https://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz && tar xvzf sshpass-1.06.tar.gz
cd sshpass-1.06/
./configure
sudo make install

【讨论】:

只要确保你已经安装了 xcode。请谷歌如何做到这一点,这是链接之一(freecodecamp.org/news/install-xcode-command-line-tools)【参考方案6】:

请按照以下步骤在mac中安装sshpass

curl -O -L https://fossies.org/linux/privat/sshpass-1.06.tar.gz && tar xvzf sshpass-1.06.tar.gz

cd sshpass-1.06

./configure

sudo make install

【讨论】:

【参考方案7】:

我只是按照this article 的说明进行操作,这很有帮助,

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

//This creates a directory sshpass-1.05

cd sshpass-1.05
./configure
make
sudo make install

【讨论】:

【参考方案8】:

原因很简单:

Andy-B-MacBook:~ l.admin$ brew install sshpass
Error: No available formula with the name "sshpass"
We won't add sshpass because it makes it too easy for novice SSH users to
ruin SSH's security.

因此,在 Mac 上执行 curl/configure/install 的答案对我来说效果很好。

【讨论】:

【参考方案9】:

与上一个答案略有更新

curl -O -L  https://fossies.org/linux/privat/sshpass-1.09.tar.gz && tar xvzf sshpass-1.09.tar.gz
cd sshpass-1.09/
./configure
sudo make install

这在 2021 年 10 月有效

【讨论】:

【参考方案10】:

啊,链接过时的问题。 只需转到https://sourceforge.net/projects/sshpass/ 下载最新版本,然后tar xvzf,最后cd to the dir where it got unpacked并安装: ./configure make sudo make install 我想这也适用于每个安装了受支持的 C sdk 的操作系统...

【讨论】:

【参考方案11】:

我发现这里列出的大多数答案都已过时。为了安装最新版本,我根据此处的其他答案运行并直接从 sourceforge.net 下载。

curl -L https://sourceforge.net/projects/sshpass/files/latest/download -o sshpass.tar.gz && tar xvzf sshpass.tar.gz
cd sshpass-*
./configure
sudo make install

【讨论】:

以上是关于如何在 Mac 上安装 sshpass?的主要内容,如果未能解决你的问题,请参考以下文章

mac iterm2安装sshpass密码记住

mac下使用iterm实现自动登陆

如何在 Mac 上安装 GCC

如何在 Mac 上安装 GCC

如何在 shell 脚本中使用 tee 和 sshpass

Mac下,使用sshpass让iterm2支持多ssh登录信息保存