リモートリポジトリgitlabにプッシュローカル倉庫
プッシュ実現とsshの認証を行うためのgitlab最初の間のローカル倉庫
設定SSHKEY
我々はすでにGitLabウェアハウスを作成している、と私たちは私たちの倉庫のクライアントに接続する方法について説明し隣の許可されたユーザーは、当社の業務の全ては、WEBページで行われ、倉庫を使用することができます。
当社の倉庫には、許可されたユーザーのみが長いクライアントのユーザーと我々のユーザーGitLab結合などとして、リポジトリにアクセスすることができ、クライアントはGitLabの倉庫にアクセスすることができ、プライベートで
私たちは、ユーザーの特定の設定に縛らクライアントGitlabのためにSSHを使用することをお勧めします次のとおりです。
SSHクライアントは、(ノートWindowsクライアントは、暗号化、RSAを使用することができます)鍵ペアを生成します。
私たちのローカルクライアントは、公開鍵、対応するユーザのSSHキーgitlabに割り当てられた公開鍵を生成し、
[ルート@ CI-ノード1〜]#件のssh-keygenは - トンRSA の生成公共 / RSA秘密鍵のペア。 入力ファイル 内 (/ルート/キーを保存するSSH / :id_rsaと) 作成されたディレクトリ「/root/.sshを」。 (空のパスフレーズを入力するためにパスフレーズなし): 再び同じパスフレーズを入力してください: あなたの識別が保存されているに /ルート/。SSH / id_rsaと。 あなたの公開鍵が保存されているに /ルート/。SSH / id_rsa.pub。 鍵のフィンガープリントは、次のとおりです。 SHA256:dKgV7ndo1haY4XeUseN / yjj7 / 2AWNH1wC2GpK / fLfuYルート@ CI- node1の キー" のrandomartイメージです: + --- [RSA 2048 ] ---- + | 。。+ * O。| | 。+ + .oo =。| | = = + * .oの| | =。= = O。| | 。S = = O | | = = O | | O。+ O | | O * =。| | + BOE + | + ---- [SHA256] ----- +
[ルート@ CI-ノード1〜]#北韓。SSH / 合計8 -rw ------- 1ルートルート1679年03月29 17:55 id_rsaと -rw-R - r--の1ルートルート 395年03月29 17:55 id_rsa.pub
[ルート@ CI-ノード1〜]#の猫。SSH / id_rsa.pub sshの CI-node1の@ -rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCstYVepXE4 / B85nKNU6gaVpPsjGXu6Ql2sKRgRDxsHGmuZVg + q0GD3c0Ml2XkzozswTRuKCcIhZjK / DEGbbgsBEH8q6HHrWCP6vAWb + 7wIEvhtJVm6 + 5zOGA / AorFczEgnm9b2ekPkwAMV7qrOQ1KG9S94U + XRwAtjgNV0MuYx5S0liBr9KBEt8pQ7Fd2TMo95rF3328gGnWLZJWmETjtJaWpLKDgWnQ7BdlK89o6eyYBtdKJfZ5uYM3tgeX8GiRA + daR8fpEruOSpjuvRbyjRStf5ZXPIemL46lXcEDYurnQ4Uucv5F + paqTWnzYHziQOoKd3Jnxgqsh24TZeoEDPルート
私たちは、rootユーザーとGitLabが結合としてこれを参照ユーザーの公開鍵をコピーし、メインページのユーザー設定GitLabをクリックしてください
ユーザー設定ページを入力し、左のメニューバーSSH KEYSをクリックしてください
管理ページへのSSH KEYS
あなたは秘密鍵システムエラーを追加した場合、公開鍵は唯一、ここで追加することができ、GitLabを通じて公衆に加えて、一度だけのシステムに追加しましたが、GitLabのユーザーが複数のパブリック追加することができます。
仕上げの設定、ローカルクライアントと認証が完了するとgitlab
ローカルクライアントに倉庫を押しGitLab
リモートリポジトリgitlabローカル倉庫にプッシュgit_test倉庫git_test有します
まず第一に、我々は、CI-node1のリモートリポジトリ上のGitLabのconfigure git_test倉庫のgit_test倉庫にしたいです、
彼のためにリモートリポジトリの設定
[ルート@ CI-git_testノード1]ゴーゴーgitlabリモートのaddr @#192.168。31.11:テスト/ git_test.git [ルート@ CI - ノード1 git_test]#ゴーリモート gitlab
第二に、のgit pushコマンドを使用すると、直接リモート倉庫の倉庫にローカルのmasterブランチをプッシュ
#のGitのプッシュ[CI、ノード1 git_test @ルート] - Uがマスタgitlab ホストの真正' 192.168.31.11(192.168.31.11)が'でき' tを確立します。 ECDSA鍵のフィンガープリントはSHA256です:Eal3aUwcGcxH1ZD9X799taSiGiCMFgAE7rnoY74f25U。 ECDSA鍵指紋MD5である:27:41:0F:5A:4C:BA:8F:23:BD:23:44:8D:18:53:E6:30 。 あなたは確かにあなたは(はい、接続を続行したい /なし)を?はい 警告:永続的に追加「192.168.31.11を」公知のホストのリストに(ECDSA)。 オブジェクトを数える:30を、行って。 オブジェクトを圧縮する:100%(18 / 18)、行います。 オブジェクトの書き込み:100%(30 / 30)、2.50 KiBのを| 0バイト/秒、行います。 合計30(デルタ2)、再使用0(デルタ0 ) に192.168。31.11:テスト/ git_test.git * [新しいブランチ]マスター- >マスター 支店マスタはgitlabからリモートブランチマスターを追跡するように設定します。
ヒントプッシュ機能は、我々GitLab上git_test倉庫は、あなたは、私たちがコンテンツを押し上げる見ることができます
認定は現在、ローカルとリモートのgitlab倉庫の統合を可能にし、正確である、倉庫を押し上げることができます
ローカルクライアントへのクローニングGitLab倉庫
私たちは、別のマシンにクローン化しgitlab倉庫をしたいです
私たちは、別のマシン上のgit CI-node2のサービスをインストールします
参照元のインストールは、このポストをgitの
https://www.cnblogs.com/mingerlcm/p/11403126.html
gitのgitの設定グローバルコンフィギュレーションメールボックス名をインストールした後
https://www.cnblogs.com/mingerlcm/p/11403274.html
SSHを行う公開鍵証明書を生成するために、CI-node2のsshクライアント
[ルート@ CI-ノード2〜]#件のssh-keygenは - トンRSA の生成公共 / RSA秘密鍵のペア。 入力ファイル 内 (/ルート/キーを保存するSSH / :id_rsaと) 作成されたディレクトリ「/root/.sshを」。 (空のパスフレーズを入力するためにパスフレーズなし): 再び同じパスフレーズを入力してください: あなたの識別が保存されているに /ルート/。SSH / id_rsaと。 あなたの公開鍵が保存されているに /ルート/。SSH / id_rsa.pub。 鍵のフィンガープリントは、次のとおりです。 SHA256:CI @ pCb3ozG5sS3ZrnkDUsLTD5RTSule2QxE6oCcmAlzKTUルート - ノード2 の鍵" のrandomartイメージがある: + --- [RSA 2048 ] ---- + | OE * + |。 | OB + = O。。。| | + + ... + O ... =。| | + O = O OO | | 。== + S | | 。+ OO。| | 。= + O | | OX +。| | * = O。| + ---- [SHA256] ----- +
gitlabへの公開鍵の設定
[ルート@ CI-ノード2〜]#北韓。SSH / 合計8 -rw ------- 1ルートルート1675年03月29 23:39 id_rsaと -rw-R - r--の1ルートルート 395年03月29 23:39 id_rsa.pub
まず、我々は、結合CI-node2で、クライアントとユーザーGitLab devの設定しました
ユーザーdevの結合gitlabに構成されたCI-node2でクライアントの公開鍵
ユーザログインDEV
gitlabは、最初のログインのdevのユーザーはデフォルトのパスワードを変更する必要が必要です
ユーザーdevの結合gitlabに構成されたCI-node2でクライアントの公開鍵
今、認定が行われています
第二に、ローカルCI-ノード2に倉庫のgit cloneコマンドをクローニング
[root@ci-node2 data]# git clone git@192.168.31.11:test/git_test.git Cloning into 'git_test'... The authenticity of host '192.168.31.11 (192.168.31.11)' can't be established. ECDSA key fingerprint is SHA256:Eal3aUwcGcxH1ZD9X799taSiGiCMFgAE7rnoY74f25U. ECDSA key fingerprint is MD5:27:41:0f:5a:4c:ba:8f:23:bd:23:44:8d:18:53:e6:30. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.31.11' (ECDSA) to the list of known hosts. remote: Counting objects: 30, done. remote: Compressing objects: 100% (18/18), done. remote: Total 30 (delta 2), reused 0 (delta 0) Receiving objects: 100% (30/30), done. Resolving deltas: 100% (2/2), done. Checking connectivity... done.
我们可以看到已经将 GitLab 上的 git_test 仓库克隆到了 ci-node2 本地,同时为本地仓库添加了一个指向 GitLab 上 git_test 仓库的远程仓库。
执行git clone时候,会默认会仓库添加一个默认的远程仓库 就是gitlab
[root@ci-node2 data]# ll git_test/ total 4 -rw-r--r-- 1 root root 21 Mar 29 23:55 a -rw-r--r-- 1 root root 0 Mar 29 23:55 master -rw-r--r-- 1 root root 0 Mar 29 23:55 test [root@ci-node2 data]# cd git_test/ [root@ci-node2 git_test]# [root@ci-node2 git_test]# git remote origin
我们 ci-node2 的 git_test 上创建一个 dev 分支,并将 dev 分支,推送到 GitLab 上:
验证是否默认远程仓库 是否是gitlab
建立dev分支
// 建立dev分支 [root@ci-node2 git_test]# git branch dev // 切换到dev分支 [root@ci-node2 git_test]# git checkout dev Switched to branch 'dev'
在dev分支,创建一个文件
[root@ci-node2 git_test]# touch dev
提交commit,需要先配置git全局配置
[root@ci-node2 git_test]# git add . [root@ci-node2 git_test]# git commit -m "commit dev on dev branch" [dev a0e7b8d] commit dev on dev branch 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 dev
把dev分支推到gitlab
[root@ci-node2 git_test]# git status On branch dev nothing to commit, working tree clean [root@ci-node2 git_test]# git push -u origin dev Counting objects: 2, done. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 227 bytes | 0 bytes/s, done. Total 2 (delta 1), reused 0 (delta 0) remote: remote: To create a merge request for dev, visit: remote: http://192.168.31.11/test/git_test/merge_requests/new?merge_request%5Bsource_branch%5D=dev remote: To 192.168.31.11:test/git_test.git * [new branch] dev -> dev Branch dev set up to track remote branch dev from origin.
完成后,我们在 GitLab 上可以看到我们刚推上来的 dev 分支