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秘密サーバーにログインできます。誰もが自分の秘密鍵を他の人に積極的に提供することはないと思います。