如何在 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/CommandLineTools
和 sudo 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 是最新的。谢谢@smammyError: Non-checksummed download of sshpass formula file from an arbitrary URL is unsupported!
brew extract` 或 brew create
和 brew 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?的主要内容,如果未能解决你的问题,请参考以下文章