CentOsのgitの構成とSSH公開鍵の導入

6036 ワード

前言
自分のサーバにGitサーバを配備することは、非常に重要なことです.プロジェクトを自動的にサーバに配備する必要がある場合は、サーバに倉庫を構築し、フォルダを手動でパッケージしてコピーするのではなく、pushを押します.これは非常に便利なプロセスです.このセクションのコンテンツサービスは、「Hexoをサーバにアップロードし、自動配備を実現する方法」です..
サーバ環境
私が使っているのはCentOs 7です.Xバージョン64ビット、6.Xバージョンはメンテナンスを放棄しており、使用をお勧めしません.
CentOsはすでにOpenSSHを内蔵しているので、もしあなたのシステムがなければ、自分でダウンロードする必要があります.sshのバージョンを表示する方法はssh -Vです.linuxでは大文字と小文字が敏感で、V小文字では結果が正しく得られないことに注意してください.次は私の出力結果です.
授業はもうOpenSSL環境があります.
インストールGit
まず私が言いたいのはGit、Github、GitLabの違いで、誰もがこの違いを知っているわけではありません.
  • Git:バージョン管理システムで、バージョン管理は1つまたは複数のファイルの内容の変化を記録し、将来特定のバージョンの改訂状況を調べるシステムです.バージョン管理システムがあれば、ファイルの紛失や誤った修正などの「事故」を心配することなく、履歴のある時点に戻ることができます.SVN、CVSのような初期の集中バージョン制御システムには、単一の集中管理サーバがあり、すべてのファイルの改訂バージョンを保存し、協同作業をしている人々はクライアントを通じてこのサーバに接続し、最新のファイルを取り出したり、更新を提出したりしています.分散バージョン制御システムを選択する理由クライアントは最新のバージョンファイルを取得するだけでなく、コードウェアハウスの完全なミラーリングを行うため、Gitのような分散バージョン制御システムを使用しています.サーバに障害が発生すると、抽出操作のたびにコード・ウェアハウスの完全なバックアップが実行されるため、後でミラー化されたローカル・ウェアハウスを使用して返信できます.Linus Torvaldsを覚えておいてください.彼はLinuxオペレーティングシステムを開発したり、Gitを開発したりしましたが、現在のAndroidの下層は変更されたLinuxシステムに基づいています.これは彼のgithubアドレスです.https://github.com/torvalds上にLinuxのソースがあります!興味ないの?
  • GitHub:これはもっとよく知っています.彼はオンラインのGitベースのコード管理サービスで、ほとんど毎日使っています.
  • Gitlab:多くの人はこれをGitHubと混同して、区別しにくいが、実は簡単で、まず彼らはすべてWebのバージョン制御インタフェースに基づいて、インターネットにサービスして、githubは直接登録して使用することができて、2 gitlabはサーバーに配置する必要があります.1つは他の人のもので、1つは自分のものです.

  • こんなにたくさん話したら、Gitのインストールを始めることができます.
    1
    yum install -y git

    このように簡単で、インストールが成功したかどうかを検証するには、入力するだけです.
    1
    git --version

    これは私が実際に操作したスクリーンショットです.
    バージョン管理である以上、誰がこの制御を行うかにかかわるので、gitを専門に管理するアカウントを設定する必要があります.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #   git  
    adduser git

    # git
    passwd git
    #

    #
    cd /home
    ls -al

    私の効果図:
    gitの権限管理
    これが私たちのポイントです.私は個人開発なので、小さなアウトソーシング会社で開発をしています.チームが大きくないので、SSH公開鍵を使って管理していますが、大きなチームであれば、gitoliteまたはgitosisを使って管理することをお勧めします.一つはPerl開発で、もう一つはPython開発です.ここでは後述しません.SSH公開鍵の導入を使用しているからです.
    次の操作を行います.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #    git      
    cd /home/git

    # .ssh , ,
    mkdir .ssh
    cd .ssh

    # keys
    touch authorized_keys

    # 5. , , , 。
    $ chmod 700 /home/git/.ssh/
    $ chmod 600 /home/git/.ssh/authorized_keys

    その後、ローカルのidをrsa.pubファイルの内容をauthorized_にコピーkeys、どのようにローカルSSH鍵を生成するかはすでに紹介しましたが、私の前のブログでは、HexoがどのようにGithub Pagesの内容に配置されて建国するかについて、参考にすることができます.
    ファイルをサーバに転送した後、権限keysファイルにコンテンツをコピーする方法については、コマンドを参照してください.cat id_rsa.pub >> authorized_keys ssh git@ をローカルで使用すればgitアカウントを使用してサーバにログインできますが、もちろん安全ではありません.
    この方法でサーバーにログインすることを許可するのは安全ではありません.必ず閉じなければなりません.この点は後で話します.
    Git倉庫の作成
    gitウェアハウスを作成する場合は簡単です.-bareを使用すると、ワークスペースにファイルがない裸のウェアハウスを作成します.
    1
    git init --bare

    ローカルではワンタッチでcloneなどの操作ができます
    1
    git cline git@     ip

    クライアントshellログインの禁止/etc/passwdファイルの変更
    1
    vim /etc/passwd

    この言葉を見つけます.
    1
    2
    3
    4
    5
    6
    git:x:1000:1000::/home/git:/bin/bash

    #
    git:x:1000:1000::/home/git:/bin/git-shell

    # ! :wq

    どうしてGitLabを直接使わないの?
    いけないとは言わないし、いいですが、2 Gメモリのサーバーは使わないことをお勧めします.ブロガーは貧乏でいいサーバーが買えないので、このように过ごしました.
    クレイジーな暗示は賞を打つ??