![在 1 个脚本中连接到 ssh 并运行命令](https://linux22.com/image/1024845/%E5%9C%A8%201%20%E4%B8%AA%E8%84%9A%E6%9C%AC%E4%B8%AD%E8%BF%9E%E6%8E%A5%E5%88%B0%20ssh%20%E5%B9%B6%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
我登录到 ssh 并手动运行命令,我想编写脚本。
现在我做的是:
ssh 192.168.1.5 -p 1234
然后我看到[email protected]'s password:
然后我按下回车键(空密码),然后我想运行 shell 命令,例如ps
我怎样才能在一个脚本中完成所有操作?
答案1
通过 SSH 运行命令很容易。只需将命令放在 SSH 命令的后面即可。例如,要echo Hello
通过 SSH 运行,使用用户user
和主机host
,我可以运行以下命令:
ssh user@host "echo Hello"
# and type the password (if there is one)
答案2
您实际上可以使用公钥身份验证来设置 ssh。这不需要您输入密码,而且也被认为更安全。这是实现此目的的良好指南:https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server
您可能不想为 ssh 密钥设置密码,或者您想将其添加到密钥环中,这样您就不会再收到密码提示。
此时,您可以运行 ssh 而无需用户输入,因为您可以指定要运行的命令:ssh someone@somehost command
。或者在您的例子中:ssh [email protected] -p 1234 ps
答案3
这解释了所谓的“授权密钥”这将是我“简单”的做法,正如您所说,您希望密码为空(对吗?如果不是,请 -指出这一点!)