在SSH上运行交互式bash命令



我正在尝试使用厨师自动化服务器配置过程。由于我不想将厨师作为根,因此我需要一个厨师/部署者用户。但是我不想手动创建此用户。相反,我想自动执行此步骤。因此,我拍摄了脚本,但遇到了一个问题:

问题是,如果我运行

>ssh root@123.345.345.567 '/bin/bash -e' < ./add_user.sh

add_user包含

//..if the username doesnt exist already
adduser $USERNAME --gecos ''

我从未看到命令的输出或提示。

  1. 有没有办法以这种方式运行交互式命令?
  2. 是否有更好的方法可以自动添加用户?

尝试以下:

ssh -t root@<ipaddress> adduser $USERNAME --gecos

不确定为什么在原始示例中的IP地址中有一个$ - 这可能会导致ssh无法连接,但是由于您没有指示这种故障,我假设这只是错别字。

由于add_user.sh只是一个简单的命令,因此无需显式运行bash或重定向的复杂性,只需通过ssh运行adduser命令。

最后,由于$USERNAME可能在本地端定义,而不是在遥控端上定义,即使您可以将原始命令列为"做您所说的话",您最终会在远程端运行adduser --gecos,这不是您想要的。

尝试使用:

ssh -t root@$123.345.345.567 '/bin/bash -e' < ./add_user.sh

而不是。

相关内容

  • 没有找到相关文章

最新更新