linux - 我如何从 bash 脚本输入密码?

标签 linux bash ssh

我正在创建一个尝试连接到远程服务器的 bash 脚本,但它需要输入密码,我编写了以下脚本:

ssh 主机IP 期待“密码:” 发送“密码”

但它会连接并提供“user@HostIP 的密码:”,因此发送命令不会向屏幕写入任何密码....我应该怎么做才能使其正常工作?

最佳答案

在文件或脚本中写入密码绝不是一个好习惯。为什么不尝试从一台服务器到另一台服务器的无密码身份验证。

简单的步骤:

我- 从命令 ssh -keygen -t rsa 生成 RSA 公钥和私钥到你的服务器 1。

II- 现在在您的另一台服务器 (server2) 的主目录中创建具有正确权限的 .ssh 目录。

III- 在服务器 2 上创建名为 authorized_keys 的文件。

IV- 在 server2 上打开名为 authorized_keys 的文件,并将名为 id_rsa.pub 的文件从 server1 复制到 server2。

V- 现在将 ~/.ssh/authorized_keys 的权限设置为 640。

VI- 现在尝试登录服务器 2:

ssh user@server2

这是一个很好的链接,它也可以告诉你同样的事情。

https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/

一旦使用 ssh 从服务器 1 到服务器 2 设置了无密码身份验证,那么您可以简单地执行脚本中要在另一台服务器上运行的所有 ssh 命令。

关于linux - 我如何从 bash 脚本输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48486150/

相关文章:

git - 使用多个 Git 用户 SSH key 的权限被拒绝

ssh - 无法在ubuntu终端中输入新命令/ssh权限被拒绝

c++ - 为什么 boost 的 managed_mapped_file::shrink_to_fit 在 Windows 和 Linux 上表现不同?

Linux命令查找文件

bash - 如何检查 Bash >=5.2 中是否存在关联数组?

python - 在 Windows 中使用 Bash 模块运行 Python 脚本

python - 无法使用 key 文件使用 Fabric 和 SSH 连接到远程服务器

linux - 获取内核未对齐访问oops中取消引用的物理地址

php - 每个用户一个 cron 文件

bash - 我应该以什么顺序发送信号以正常关闭进程?