通过脚本将密码传递给您的SSH密钥

我正在编写一个脚本,可以让我一次从我所有的服务器上检索文件。 我有SSH密钥以login到我的服务器。 但是,我的SSH密钥需要密码。

我写的脚本不会自动化,只能手动运行。 所以我的脚本提示用户inputSSH密码。

如何将密码发送到SSH密钥,因为它连接到每个服务器。 我试图避免在每个服务器input我的密码。

我知道我可以使用'期望',但我希望有一个简单的方法来做到这一点。 也许有一些环境variables?

谢谢。

为什么不使用ssh-agent呢?
请参阅手册页以获取更多详细信息。 🙂

我会使用一个没有密钥的SSH密钥。 它可能不太安全,但是任何可以无人使用的方法都会有同样的缺陷。

期待是首先想到的解决scheme…

请检查此脚本示例 ,因为它接近您要查找的内容。

这是我的2美分!

  • 我有一个随身携带的USB驱动器(在我的物理钥匙链中)。
  • 我做了5个微不足道的MB的第二个分区。 这个分区是一个encryption的ext4分区。
  • 我将我的私钥(不带密钥)存储在该encryption分区中。
  • 在我的计算机中,我存储密码来解密在文件pipe理器(我使用海豚)这个分区,所以如果我插入的USB驱动器,我可以挂载encryption分区两次单击,如果我插入USB驱动器在另一台计算机,我可以挂载它input密码。
  • 再次在我的电脑中,我已经通过(〜/ .ssh / id_rsa)将我的私钥从系统挂载到USB驱动器。 所以一旦安装,我可以做一个正常的SSH密码。
  • 如果我在另一台计算机上,我可以告诉ssh我的密钥是用-i标志

这样我可以:

  • 从我的日常电脑中轻松login
  • 用任何linux机器上的单一密码login
  • 让我的私钥总是安全的,并在一个encryption的文件系统

最简单的解决scheme是安装软件包sshpass并使用它:
sshpass -p password ssh -i keyfile.pem user@server