gpt4 book ai didi

ssh - 多服务器部署 : asking ssh password for each server

转载 作者:行者123 更新时间:2023-12-01 11:54:47 25 4
gpt4 key购买 nike

我正在设置 Capifony(Symfony 的 Capistrano),但在测试多服务器部署时我遇到了 ssh 密码问题。

这里有一些版本:

daniel@fiji:~$ ruby --version
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]

daniel@fiji:~$ cap --version
Capistrano v2.9.0

daniel@fiji:~$ uname -a
Linux fiji 3.0.0-13-generic-pae #22-Ubuntu SMP Wed Nov 2 15:17:35 UTC 2011 i686 i686 i386 GNU/Linux

还有来自 deploy.rb 的一些配置:

set :domain, "mydomain"
...
set :user, "sshuser"
set :password, "sshpassword"
...
role :web, domain
role :app, domain
...

部署到单个服务器效果很好,无需输入密码。一切都很好。但是,如果我尝试使用如下配置向配置添加更多服务器(我需要部署到 6 到 9 台机器):

...
set :user, "sshuser"
set :password, "sshpassword"
role :web, "ipaddr1", "ipaddr2"
role :app, "ipaddr1", "ipaddr2"
...

Capistrano 开始询问我列出的每个服务器的 ssh 密码,即使它像以前一样设置......这个配置有什么问题?输入密码让进程继续并且一切正常,但我想避免每次都输入密码。

谢谢丹尼尔

最佳答案

我不明白为什么 capistrano 一直要求您输入密码。但是,解决此问题的一种方法是使用公钥身份验证,这在 capistrano wiki 中也有建议。 (有关如何设置的示例,请参见 this tutorial)

简而言之:

  1. 您使用 ssh-keygen -t rsa -C "youremail" 生成 key
  2. 将公钥复制到远程主机 scp -p .ssh/id_rsa.pub remoteuser@remotehost:
  3. 您将公钥添加到服务器上的授权 key 文件:cat id_rsa.pub >> ~/.ssh/authorized_keys。 (您可能需要创建 .ssh 目录)

之后,您只需输入一次密码,而无需将密码硬编码到 deploy.rb 文件中。

关于ssh - 多服务器部署 : asking ssh password for each server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com