通过ssh通过密码执行命令

分享于 

2分钟阅读

互联网

 

问题:

我想通过本地机器上的ssh在两个服务器上执行两个命令


ssh user@"$APP_HOST""sh/home/agents/startAgent.sh --auto-shutdown> agent.log 2>&1 </dev/null &"


ssh user@"$DB_HOST""sh/home/agents/startAgent.sh --auto-shutdown> agent.log 2>&1 </dev/null &"



使用 APP_HOST 可以正常工作,并且可以在远程启动 .sh. 脚本。

但是在DB_HOST 尝试运行相同的命令时要求密码。

但是如何在命令内部提供密码而不输入呢?


回答 1:

ssh user@"$DB_HOST"


回答 2:

您必须在远程服务器上安装私钥。 如果您具有远程用户的密码,则有权安装您的私钥,只需运行


ssh-copy-if user@"$DB_HOST"



将提示输入用户密码,然后您可以登录到远程服务器而无需输入密码。


回答 3:

您可以安装并使用各种ssh-askpass软件包(ssh-askpass,ssh-askpass-gnome,ksshaskpass(KDE),ssh-askpass-fullscreen(Gnome2)等)之一,并强制输入密码提示(在您的X会话)可在每次要求输入密码时打开。


回答 4:

为SSH创建新的认证密钥对,不要在密码句中输入值( 在终端上)

  • ssh-keygen -t rsa
  • ssh-copy-id -i/home/local_user/.ssh/id_rsa user@$DB_HOST
  • ssh-keygen -f"/home/local_user/.ssh/known_hosts" -R"$DB_HOST"
  • 执行( 你的shell 脚本)

    ssh -t user@$APP_HOST 'sh/home/agents/startAgent.sh --auto-shutdown> agent.log 2>&1 </dev/null & '

    ssh -t user@$DB_HOST 'sh/home/agents/startAgent.sh --auto-shutdown> agent.log 2>&1 </dev/null & '



COM  COMM  Comma  EXE  password  EXEC  
相关文章