CentOSで独自のGitサーバを構築

3654 ワード

まずCentOSシステムをインストールする必要があります.テストとして、仮想マシンにインストールすることができます.これは便利です.このステップは君ができることを黙認して,もう言わない.CentOSがあれば、Gitサーバはどのように構築されますか?1、まずGitをインストールする必要があります.yumソースを使ってオンラインでインストールできます.
[root@localhost Desktop]# yum install -y git

2、gitサービスを実行するためのgitユーザーを作成する
# adduser git  

3、git倉庫の初期化:ここでは、git倉庫として/data/git/learngit.gitを選択します.
[root@localhost git]# git init --bare learngit.git  
Initialized empty Git repository in /data/git/learngit.git/  

以上のコマンドを実行すると、裸の倉庫が作成されます.裸の倉庫にはワークスペースがありません.サーバー上のGit倉庫は純粋に共有のためです.そのため、ユーザーが直接サーバーにログインしてワークスペースを変更することはできません.また、サーバー上のGit倉庫は通常.gitで終わります.次にownerをgitに変更します.
[root@localhost git]# chown git:git learngit.git  

4、ここでGitサーバーはもう下手です.次にクライアントcloneでリモートウェアハウスを確認します
Zhu@XXX /E/testgit/8.34
$ git clone [email protected]:/data/git/learngit.git
Cloning into 'learngit'...
The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established.
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts.
[email protected]'s password:

まず、Gitのcloneまたはpushコマンドを使用してGit Hubを接続すると、警告が表示されます.
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

これはGitがSSH接続を使用しているため、SSH接続はGitHubサーバのKeyを初めて検証する際に、GitHubのKeyの指紋情報が本当にGitHubのサーバから来ているかどうかを確認し、yesを入力して車に戻ればよいからです.
Gitは警告を出力し、GitHubのKeyを本機の信頼リストに追加したことを示します.
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

この警告は一度しか現れず、後の操作では何の警告もありません.GitHubサーバになりすます人がいるのではないかと心配している場合は、yesを入力する前にGitHubのRSA Keyの指紋情報とSSH接続で与えられたものが一致しているかどうかを照合することができます.第二に、ここではcloneにパスワードを入力するようにヒントを与えます.もちろん、パスワードを知っていれば、cloneにパスワードを入力することができますが、より一般的な方法は、SSHの公開鍵を利用して検証を完了することです.
5、SSH Keyを作成するには、まずユーザーホームの下で、.sshディレクトリがあるかどうかを見て、ある場合は、このディレクトリの下にidがあるかどうかを見てみましょう.rsaとid_rsa.pubという2つのファイルは、すでにあれば、直接次のステップにジャンプすることができます.ない場合はShell(WindowsでGit Bashを開く)を開き、SSH Keyを作成します.
$ ssh-keygen -t rsa -C "[email protected]"  

メールアドレスを自分のメールアドレスに変えて、車に戻ってデフォルト値を使えばいいです.このKeyも軍事目的ではないので、パスワードを設定する必要はありません.
すべてがうまくいけば、ユーザーのホームディレクトリに.sshディレクトリを見つけることができます.id_が入っています.rsaとid_rsa.pub 2つのファイル、この2つがSSH Keyの鍵ペア、id_rsaは秘密鍵です.漏らすことはできません.id_rsa.pubは公開鍵で、誰にでも安心して伝えることができます.
6、GitサーバーはRSA認証を開き、Gitサーバーに公開鍵を追加して情報を検証することができます.Gitサーバではまず/etc/ssh/sshd_configでは、RSA認証がオンになります.
1.RSAAuthentication yes     
2.PubkeyAuthentication yes     
3.AuthorizedKeysFile  .ssh/authorized_keys

公開鍵が.ssh/authorizedに格納されていることがわかります.keysファイルにあります.では、/home/gitの下で.sshディレクトリを作成し、authorized_を作成します.keysファイルを作成し、生成したばかりの公開鍵をインポートします.
そして再びcloneするとき、あるいは後でpushするとき、パスワードを入力する必要はありません.
Zhu@XXX/E/testgit/8.34
$ git clone [email protected]:/data/git/learngit.git
Cloning into 'learngit'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

7、gitユーザーのshellログインを無効にするセキュリティ上の考慮から、第2ステップで作成したgitユーザーはshellにログインすることを許可しない.これは/etc/passwdファイルを編集することによって完成することができる.次のような行を見つけます.
git:x:1001:1001:,,,:/home/git:/bin/bash  

最後のコロンを次のように変更します.
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell  

これによりgitユーザはsshでgitを正常に使用できますが、gitユーザに指定したgit-shellはログインするたびに自動的に終了するため、shellにログインできません.