如何在线执行 ssh 命令

如何在线执行 ssh 命令

我知道如何通过 ssh 连接到服务器

$ ssh <user>@<domain>

然后第二个命令提示符要求输入密码

<user>@<domain>'s password : -----

这里如何能够用一行做同样的事情?看起来像

$ssh <user>@<domain-name> -p <pass>

有可能吗?如果可以,怎么办?

答案1

有几种方法可以帮助您做到这一点。但在使用这些工具时,您可能会担心安全问题。

  1. 没有密码的 ssh-key(这里缺乏安全性)

您可以创建一个 ssh-key 并将其添加到远程服务器上的受信任密钥。

  1. 带有 ssh-agent 的 ssh-key

您可以创建一个带有密码的 ssh-key(更安全),并使用 ssh-agent 来帮助实现自动化。

  1. ssh 配置文件

此文件可能有助于将密钥与服务器配对

答案2

另一个答案是正确的,从安全角度描述了正确的解决方案。但要回答这个问题,还有sshpass,它完全符合您的要求。

您可以从命令行、文件、文件描述符或环境变量获取密码。例如

sshpass -p password ssh user@domain

但请注意,这个简单的用例是安全灾难,因为您的所有命令都记录在磁盘的历史记录中,而这通常是您不希望发生在密码上的事情。

相关内容