LoginSignup
10
11

More than 5 years have passed since last update.

サーバーや仮想環境等とgithubを鍵認証で連携させる

Last updated at Posted at 2016-02-09

記事の目次

VirtualBox+CentOS7(+Windows)でruby on railsの開発環境を作るのまとめ


  • githubに鍵を登録し、連携させます。
    • 基本は上記で作成した仮想環境ベースですが、その他環境でも同じかと思います(たぶん)

認証鍵を生成する

以下仮想環境ssh接続したコマンドで作業

  • .sshディレクトリへ移動

    • ない場合は、自身のディレクトリ直下に作成する
      
      mkdir ~/.ssh
      chmod 700 ~/.ssh
      
  • 鍵を生成する

    • 生成する場所は.ssh以下であれば、更にディレクトリを作成しても良いかと思います。
      
      ssh-keygen -t rsa -C "[メアド]" -f [鍵のファイル名]
      
  • パスフレーズ(鍵のパスワードみたいなもの)の入力を求められるので入力してEnter

  • 確認にもう一度入力することを求められるので、再度入力してEnter

    • 入力内容は画面に表示されません

  • 『[鍵のファイル名]』と『[鍵のファイル名.pub]』ができます。

  • [鍵のファイル名]のみのファイルは秘密鍵となりますので、外部への公開等しないよう十分注意して下さい。

    • 仮想環境のイメージを出力して、それを配るとかすんなよって話

  • 秘密鍵の権限を変更する

    
    chmod 600 [鍵のファイル名]
    


  • 公開鍵(.pubファイル)の情報をコピーする

    • 表示された『ssh-rsa...[メアド]』の部分までをコピーしておく。
      
      cat [ファイル名].pub
      

githubに鍵を登録する

ここからホスト側のブラウザにて作業

  1. githubにログインし、右上の自アイコンクリック⇒settingを選択
  2. Personal settingsのメニューから、SSH keysを選択
  3. 表示された画面の右上にある、『New SSH key』を選択
    • 表示されたフォームに、以下の情報を入力
      
      title:任意な文字列
      Key:上記.pubファイルのコピーした内容をペースト
      
  • 『Add SSH key』を選択

    • githubのパスワードを求められるので、入力する
  • 戻ってきた画面に、指定したtitleで鍵が登録されていることが確認できればOK


githubにssh接続する

再度仮想環境に戻ります

  • 設定ファイルを作成する

    • なければ新規に作成する
      
      vi ~/.ssh/config
      
      
      #-----------ここから-----------
      Host github-testconnect
      User git
      Port 22
      HostName github.com
      IdentityFile ~/.ssh/[秘密鍵ファイル名]
      TCPKeepAlive yes
      IdentitiesOnly yes
      #-----------ここまで-----------
      
  • configファイルの権限を変更する

    
    chmod 600 ~/.ssh/config
    
  • githubへのssh接続テスト

    
    ssh -T github-testconnect
    
  • 入力後、以下が表示されたら、『yes』を入力してEnter

    
    Are you sure you want to continue connecting (yes/no)?
    
  • 問題なく接続されたら鍵のパスフレーズ入力を求められるので、先に設定したパスフレーズを入力してEnter

  • その後以下が表示されたら接続OK

    • githubのSSH keysの登録した鍵の項目にも、緑のチェックがつくようになります
      
      Hi [githubアカウント名]! You've successfully authenticated, but GitHub does not provide shell access.
      

クローンする

  • クローンする際に指定の鍵を読み込ませる必要があるので、configでgithubを登録します。

    #-----------ここから-----------
    Host github.com
    IdentityFile ~/.ssh/[秘密鍵ファイル名]
    
    -----------ここまで-----------
  • クローンするディレクトリに移動して、クローンする

    
    git clone git@github.com:xxxx/xxxx.git
    
  • パスフレーズの入力を求められるので、入力してEnter

    • 問題がなければ、該当のリポジトリからクローンができます

ssh-agentを使ってパスフレーズをスルーする

  • pullする時等、常にパスフレーズの入力を求められるのはめんどくさい。
    • ということで、ssh-agentを使って認証をスルーできるようにする
  1. PIDを環境変数に登録する

    eval `ssh-agent`
    echo $SSH_AUTH_SOCK
    
  2. ログイン時にssh-agentを起動させる

    echo 'eval `ssh-agent`' >> ~/.bash_profile
    echo 'ssh-add ~/.ssh/[秘密鍵ファイル名]' >> ~/.bash_profile
    
  3. ログアウト時にssh-agentをkillするようにする。

    
    echo 'ssh-agent -k' >> ~/.bash_logout
    
  • この後仮想環境にログインする時、パスフレーズの入力を求められるので入力してEnter
    • これでログイン中は、パスフレーズの入力を求められなくなります。
10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11