首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多服务器部署:询问每台服务器的ssh密码

多服务器部署:询问每台服务器的ssh密码
EN

Stack Overflow用户
提问于 2011-11-23 19:45:25
回答 2查看 6.5K关注 0票数 3

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

以下是一些版本:

代码语言:javascript
复制
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的一些配置:

代码语言:javascript
复制
set :domain, "mydomain"
...
set :user, "sshuser"
set :password, "sshpassword"
...
role :web, domain
role :app, domain
...

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

代码语言:javascript
复制
...
set :user, "sshuser"
set :password, "sshpassword"
role :web, "ipaddr1", "ipaddr2"
role :app, "ipaddr1", "ipaddr2"
...

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

谢谢,丹尼尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-24 04:48:21

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

简而言之:

使用ssh-keygen -t rsa -C "youremail"

  • You生成密钥,将公钥复制到远程主机scp -p .ssh/id_rsa.pub remoteuser@remotehost:

  • You,将公钥添加到
  1. 上的授权密钥文件:cat id_rsa.pub >> ~/.ssh/authorized_keys。(您可能需要创建.ssh目录)

之后,您应该只需要输入密码一次,并且不需要将密码硬编码到deploy.rb文件中。

票数 4
EN

Stack Overflow用户

发布于 2011-11-24 05:26:26

根据更有经验的用户的说法,我可以说使用密码进行ssh身份验证不是一种好的做法。使用ssh keys并依赖它们要好得多。只需删除行

代码语言:javascript
复制
set :password, "sshpassword"

显然,在要部署的每个服务器上都要设置公钥。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8241639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档