zoukankan      html  css  js  c++  java
  • 使用Capistrano向EC2部署Django代码关于SSH相关的配置

    使用Capistrano向EC2部署Django代码的文章中,主要给出了Capistrano的配置文件,这里具体说一下SSH的相关配置。

    Capistrano里面和SSH相关的有几个设置的地方:

    set :user, "ec2-user" #连接EC2的用户名
    set :use_sudo, false  #连接EC2之后进行deploy:setup的时候,不允许使用sudo
    default_run_options[:pty] = true
    
    ssh_options[:forward_agent] = true #采用SSH agent forwarding技术
    ssh_options[:port] = 22
    ssh_options[:keys] = [File.join(ENV["HOME"], ".ec2", "aws_xxx"), File.join(ENV["HOME"], ".ssh", "deploy_xxx")] #指定连接EC2需要用的keyfile

    使用SSH的两个地方:

    • Local连接EC2:基于key pair认证
    • EC2连接github

    1:连接EC2的时候是基于key pair的认证。在命令行下一般这么使用

    ssh -i sample.pem ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

    这里需要通过[ -i ]明确指定你的私钥位置,你可以使用AWS帮你生成的*.pem,也可以是自己通过ssh-keygen产生的私钥。这个可以通过ssh_options[:keys]进行配置。如果不配置的话,默认会询问你的密码。其实你也可以把该私钥的放到ssh agent里面就可以不用通过配置文件的ssh_options来明确指定了。

    ssh-add /the/full/path/to/private-key

    2:EC2连接github的时候,可以有三种方法,我们这次采用SSH agent forwarding方法。

     具体参照:https://help.github.com/articles/using-ssh-agent-forwarding

    # .ssh/config
    Host *.compute.amazonaws.com
      ForwardAgent yes
    
    # deploy/development.rb
    ssh_options[:forward_agent] = true
    ssh_options[:port] = 22
    ssh_options[:keys] = [File.join(ENV["HOME"], ".ec2", "aws_op")]

    注意:EC2连接github使用的SSH Key必须要事先通过ssh-add告诉ssh agent(具体内容可以通过ssh-add -l来进行确认)否则连不通。而且具体使用的key也不必通过ssh_options[:keys]进行配置。如果你本地有多个可以访问指定repo的多个github账号,且他们的SSH key都加入到ssh agent里的时候,怎么具体指定使用哪个账号进行操作,暂时还无法知晓,即使指定了ssh_options[:keys]也好像不凑效。

  • 相关阅读:
    UWP开发必备:常用数据列表控件汇总比较
    CodeForces 372 A. Counting Kangaroos is Fun
    ubuntu 13.10 eclipse 菜单栏不可用的问题
    Codeforces Round #219(Div. 2)373 B. Making Sequences is Fun(二分+找规律)
    Git/Github使用方法小记
    Ubuntu 下jdk的安装
    VIM简明教程
    codeforces 371 C-Hamburgers
    codeforces 371A K-Periodic Array
    计算机网络中IP地址和MAC地址
  • 原文地址:https://www.cnblogs.com/foxracle/p/2604771.html
Copyright © 2011-2022 走看看