【问题标题】:I want to ssh using shell script but it does not work我想使用 shell 脚本 ssh,但它不起作用
【发布时间】:2014-12-28 17:23:11
【问题描述】:

我有一个运行 FreeBSD 的虚拟机,我对其进行了设置,以便我可以通过 ssh 无头访问它。但是我不想每次都输入命令。所以我创建了一个脚本文件SSH-BSD,修改了它。它包含:

#!/bin/bash

echo `ssh -p 3022 user@127.0.0.1`

当我启动它连接的脚本时,提示我输入密码。但是,当我输入它时,它只是挂起并且什么也不做。请注意,如果我键入脚本中的确切内容,那么我就可以登录机器了。

所以我想,也许要让脚本以这种方式运行,我的机器需要经过身份验证。所以我通过ssh-keygen 创建了密钥,然后通过ssh-copy-id 创建了VM。这很好用,不再需要我输入密码,但当我启动脚本时,它仍然挂起。

我不做 bash 脚本,所以我可能不知道这些限制,有人可以赐教吗?谢谢。

【问题讨论】:

  • 对于这样的单行,您还可以设置一个 bash 别名

标签: bash virtual-machine freebsd ssh-keys


【解决方案1】:

不要使用echo

#!/bin/bash

ssh -p 3022 user@127.0.0.1

这应该可以正常工作。

【讨论】:

  • 真好用。我知道我做的不对。使用/不使用 echo 有什么区别?
  • 在 BASH 中,` 标记表示运行里面的命令并得到输出。因此,如果您使用 echo,它将重定向您想要回显的所有输出,但不会重定向标准输出。
  • 感谢您澄清这一点。我会更多地阅读 bash 脚本。
猜你喜欢
  • 1970-01-01
  • 2020-06-29
  • 2022-12-05
  • 2016-10-30
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
相关资源
最近更新 更多