Gitサーバーの構築方法を教えてください

https://gitbook.cn/books/5e81adf58d6af944d1f26356/index.html

1.サーバーにGitをインストールします

rootアカウントに切り替えます。

su root

サーバーにGitがインストールされているかどうかを確認します。次のメッセージが表示された場合は、Gitがあることを意味します。

[root@instance-5fcyjde7 ~]# git
usage: git [--version] [--help] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find by binary search the change that introduced a bug
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   fetch      Download objects and refs from another repository
   grep       Print lines matching a pattern
   init       Create an empty Git repository or reinitialize an existing one
   log        Show commit logs
   merge      Join two or more development histories together
   mv         Move or rename a file, a directory, or a symlink
   pull       Fetch from and merge with another repository or a local branch
   push       Update remote refs along with associated objects
   rebase     Forward-port local commits to the updated upstream head
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index
   show       Show various types of objects
   status     Show the working tree status
   tag        Create, list, delete or verify a tag object signed with GPG
'git help -a' and 'git help -g' lists available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

Gitがない場合は、インストールするだけです。yumによってインストールされるデフォルトのバージョンは1.8.3.1です。

yum install git

インストールが成功したら、インストールしたバージョンを確認します。

git --version

2.サーバー側でGitアカウントを設定します

Git Linuxアカウントを作成します。このアカウントは、安全上の理由から、Gitプライベートサーバーの操作にのみ使用されます。
Linuxの新しいアカウントを作成しないと、一般的に使用されるLinuxアカウントを独自の言葉で作成し、日常rm -rf *業務に震え、データはそれ以上できなくなります。
ここでのLinuxGitアカウントのパスワード設定は、可能な限り複雑です。デモンストレーションの目的で、「gitpassword」に設定しました。

adduser git 
passwd gitpassword

次に、Gitアカウントに切り替えて、次の操作を実行します。

[root@instance-5fcyjde7 ~]# su - git

現在のディレクトリがgitディレクトリの下にあるかどうかを確認します。

[git@instance-5fcyjde7 ~]$ pwd
/home/git

3.サーバー側のキー管理

.sshディレクトリを作成します。.sshがすでに存在する場合は、この項目を無視できます。
SSH公開鍵を構成する必要があるのはなぜですか?GitHubを使用してコードをアップロードおよびアップロードしたい場合は、GitHubで公開鍵を構成する必要があることを覚えていますか。
これは、Gitリポジトリを操作するたびにパスワードを入力する必要がないことも意味します。

cd ~/ 
mkdir .ssh

.sshファイルを入力し、authorized_keysファイルを作成します。このファイルはクライアントの公開鍵です。

cd ~/.ssh 
touch authorized_keys

authorized_keysの権限を設定することを忘れないでください。多くの学生は、authorized_keysの権限を設定するのを忘れたため、パスワードなしではログインできないことに気付きます。

chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys

次に、クライアントの公開鍵をGitサーバーに配置する必要があります。次に、クライアントに戻って公開鍵を作成します。
私たちのコンピューターには、公開鍵と秘密鍵があります。2つのファイルは、id_rsaとid_rsa.pubです。

  • Windowsシステムの場合、公開鍵と秘密鍵のディレクトリはC:\ Users \ Username.sshの下にあります。
  • MacまたはLinuxのcd ~/.ssh/場合、公開鍵と秘密鍵のディレクトリはここにあります。コンピュータに公開鍵と秘密鍵がない場合は、自分で作成してください。

キーを作成するコマンド:

ssh-keygen -t rsa

キーを作成するプロセスで、Enterキーをクリックするだけです。何も記入する必要はありません。公開鍵をGitサーバーにコピーし、生成したid_rsa.pubをGitサーバーの/home/git/.ssh/ディレクトリにコピーします。
Gitサーバーで、公開鍵をauthorized_keysファイルに追加します。

cd /home/git/.ssh/
cat id_rsa.pub >> authorized_keys

構成したキーが成功したかどうかを確認するにはどうすればよいですか?クライアントポイントでGitサーバーに直接ログインして、シークレットフリーログインかどうかを確認します。

ssh git@git 服务器 ip

例えば:

ssh [email protected]

シークレットなしでログインできる場合は、サーバー側のキー構成は成功しています。

4.サーバー側にGitリポジトリをデプロイします

Gitサーバーにログインし、Gitアカウントに切り替えています。rootアカウントがGitアカウントに切り替えられた場合:

su - git

別のアカウントがGitアカウントに切り替えられた場合:

sudo su - git

gitディレクトリに入ります:

cd ~/git

最初のGitプライベートサーバーウェアハウスを作成します。これをワールドウェアハウスと呼びます。次に、最初にworld.gitという名前のフォルダーを作成してから、このディレクトリに入ります。
一部の学生は、フォルダ名の後に.gitを付ける必要がある理由を尋ねました。実際、別の名前を付けてもかまいません。しかし、注意深い学生が気付いたかもしれません。私たちは通常、GitHubでgit clone、名前の後ろにある倉庫とすべての.gitを他の誰かの倉庫に置いています。
たとえば、次の例は実際にはウェアハウス名のGitHubの命名規則であるため、GitHubの命名規則にも従います。

git clone https://github.com/youngyangyang04/NoSQLAttack.git

したがって、私たちの操作は次のとおりです。

[git@localhost git]# mkdir world.git
[git@localhost git]# cd world.git

世界の倉庫を初期化します。

git init --bare

複数のウェアハウスを作成する場合は、複数のフォルダーを作成してここで初期化するだけです。操作プロセスはワールドウェアハウスと同じです。
サーバー側のGitウェアハウスがデプロイされたので、クライアント側とこのウェアハウスの使用方法を見てみましょう。

5.クライアントはリモートウェアハウスに接続します

コンピューター上にworldというフォルダーを作成しましょう。
実際、ここでの名前は任意ですが、Gitサーバーのウェアハウス名と同期させたいと考えています。これは、私たちが運営している倉庫をより直感的にします。

mkdir world 
cd world

ワールドファイルを入力し、操作を初期化します。

cd world 
git init

ワールドディレクトリにテストファイルを作成し、Gitバージョン管理に追加します。

touch test
git add test 
git commit -m "add test file"

セカンダリウェアハウスとリモートウェアハウスを同期します。

git remote add origin git@git 服务器端的 ip:world.git
git push -u origin master

この時点で、テストファイルはGitリモートプライベートサーバーに送信されています。

6.Gitプライベートサーバーのセキュリティ問題

ここには2つのセキュリティ問題があります。

6.1 LinuxGitパスワードを漏らさないでください

それ以外の場合、他のssh git@git 服务器 IPユーザーはGitPWサーバーにログオンできます。もちろん、クラウドベンダーからクラウドサーバーを購入した場合、誰かが悪意を持って別のパスワードリンクを試し、サーバーに接続したい場合は、3回以上試行すると、クライアントのIPがブロックされ、メールは次の場所でブロックされます。同時に、IPの出所を教えてください。
したがって、パスワードを漏らさない限り、基本的に誰もパスワードを試し続けてGitプライベートサーバーに同時にログオンすることはありませんのでご安心ください。

6.2秘密鍵ファイルid_rsaを他人に渡さないでください

誰かがこの秘密鍵を取得した場合、パスワードなしでGit秘密サーバーにログインできます。誰もが自分の秘密鍵を他の人に積極的に提供することはないと思います。

おすすめ

転載: blog.csdn.net/wohu1104/article/details/114625012