Windows.Git.Cygwin.SSH.Gitoliteおよびユーザーガイド

1.この記事の目的は何ですか?



WindowsプラットフォームでGit機能を取得したいという願望は、さまざまな構成スキームをいじりたいという願望を具体化しました。



2.意識



Cygwin、SSH、GitExtenstions、Git、Gitoliteのプログラムを使用する必要があることを認識する必要があります。



Cygwinは、Linux環境をエミュレートするプログラムで、Linuxターミナルウィンドウのように見えて動作する独自の黒いウィンドウがあります。

MsysGitはgit環境をエミュレートするプログラムですが、sshサーバーがないため、サーバー上のリポジトリを使用しません。 リポジトリのクライアントにのみ使用します。

SSHは、sshクライアントからのssh接続を使用するためのプログラムで、すべてのオペレーティングシステムで使用できます。

SSHサーバーは、sshクライアントからの接続を受け入れるプログラムです。

Gitは、ファイルリポジトリを操作するためのgit自体を含むプログラムのコレクションです。

Gitoliteはgitをラップし、リポジトリ管理機能を実装するプログラムです。ユーザー、ユーザーのアクセスなどを管理します。

GitExtensionsは、gitとGUIに含まれるプログラムセットの両方の機能をラップするWindows用のプログラムであり、05/08/10にVisual Studio開発環境にも統合されます。



企業では、SSHサービスをホストするためのリソース、リポジトリをホストするためのディスク領域を割り当てる必要があります。

SSHサーバーを提供する人、リポジトリへのアクセス。

ユーザーに関数アナログを使用して、GitExtensionsを介して古いバージョン管理システムと対話するように指導します。

Gitが達成できるワークフローを提供します。



UPD:2011年8月5日

UPD:2012年1月30日



3.結果に行きます:コンポーネントのホスティング



CygwinでGit、SSHサーバー、Gitoliteをホストします。

アドレスhttp://cygwin.com/setup.exeにアクセスします

インストーラーを実行します。

ミラーを追加http://cygwin.vc.ukrtel.net/

matway.org-利用できなくなりました。 2012年1月30日更新。

ロシアに近いミラーのリスト: cygwin.com/mirrors.html

次のコンポーネントをマークします。

ネット| openssh

デベル| git

デベル| git-completion

デベル| git-gui

デベル| gitk

編集者| ヴィム

[次へ]をクリックすると、インストールが必要なパッケージを追加することを提案します。同意して[次へ]をクリックします。

[スタート]メニュー/ Cygwin / Cygwinターミナルを確認します。

画像



Alexeiにログインして、Windowsログイン、ベースマシン名を入力します。 それはすべて一緒に収まります。



4.結果に進みます:SSHサーバーの構成



Cygwinターミナルを起動します。

ssh-host-configコマンドでSSHサーバーの構成を開始します。

画像



画像



画像



画像



画像



画像



画像



/ etc / sshd-configに移動し、パスワードなしで認証を有効にします。

これらの行のコメントを解除します。

PubkeyAuthenticationはい

AuthorizedKeysFile .ssh / authorized_keys



Gitを使用するすべてのユーザーについて、パスワードなしでユーザーgit(または別の名前)TVモードを使用して、SSHサーバーへのログインを構成する必要があります。



SSHサーバーの操作に関する理論のビット。

SSHクライアントからgit @ localhost接続文字列を介して接続する場合、最初に起こることは

.sshディレクトリでキーの秘密部分を検索します。CYGWINの場合は〜/ .ssh /、Windowsの場合-c:/ users / your name / .ssh

次に、localhostサーバーのgitプロファイルのauthorized_keysファイルで、現在のユーザー名に等しいマーカーを持つテキストが検索されます。 見つかった場合は、gitユーザープロファイルがロードされるターミナルを取得します。

クライアントはcygwinにあり、gitbashにあり、パテなどがあります。 cygwinにあるsshクライアントに興味があります。

これは、引数git @ localhostを使用してsshコマンドによって呼び出されます。ここで、gitは、sshおよびlocalhostを介してアクセスするプロファイルを持つユーザーの名前です(これはSSHサーバーのアドレスです)。

実際、上記のように動作するようにします。



  1. gitという名前でもう1人のユーザーを紹介します。 この名前は公式の操作用です。

    コンピューター管理->ローカルユーザーとグループ->ユーザー-> pcm->新規ユーザー->を開きます。

    Git名、パスワード123456、「パスワードは無期限」というチェックマークを残します-> OK

    Cygwin Bashシェルを開き、コマンドmkpasswd -l -u git >> / etc / passwdを入力します

    次のコマンドでユーザープロファイルを復活させます。

    画像

    Ctrl + Dまたはexitコマンドを押して、プロファイルを終了します。

  2. ログイン用のキーを生成します。 私の場合、ログイン用のAlexeiです。

    ssh-keygen -t rsaコマンドは、2つのファイルで構成されるフォルダーにキーを作成します

    id_rsa(プライベート部分、ユーザーと共に保存)およびid_rsa.pub(キーの公開部分)。

    次に、鍵の公開部分をgitユーザープロファイルのauthorized_keysファイルに追加します

    ssh-copy-id -i git @ localhostコマンド経由。

    画像

    SSHサーバーコマンドを開始します。

    画像

    キーの公開部分をgitプロファイルにコピーします。

    画像

    必要に応じて構成することが判明したかどうかを確認します。 ssh git @ localhostコマンドを実行し、ターミナルへの招待を待ちます

    gitユーザーから。

    画像

    すべてがセットアップされたことが判明しました。

    うまくいかない場合は、手順10に進みます。



5.結果に移動:Gitoliteのセットアップ





6.結果に移動:GitExtensionsのセットアップ





7.結果に移動:ユーザー設定



次に、現在のユーザーのWindowsプロファイルを構成する必要があります。

  1. Alexeiファイルが現在のプロファイルの.sshフォルダーにあることを確認しますc:/users/Alexei/.ssh/
  2. 構成ファイルが同じフォルダーにあることを確認してください。
  3. これを行うには、c:\ cygwin \ home \ yourname \ .ssh \ config and yournameからそれらを取得する必要があります

    そしてc:\ users \ your name \ .ssh \にコピーします
  4. これは、作業の一部がすでに行われている場合(この場合はgitoliteプログラム)のオプションです。

    最初に、彼女はあなたのためにあなたの名前とあなたの.pubキーファイルを生成しました。 pubプロファイルをgitプロファイルのauthrozied_keysファイルに送信しました。

    そして、authorized_keysのこのキーに設定を追加しました。

    この変更されたauthorized_keysを見てみましょう

    画像
  5. 情報の説明。

    キーの秘密部分は、最後にマークされたブロックに配置されます:どのユーザーおよびどのアドレスから。

    最初のプライベートは、最初のキーid_rsa.pubからのものです。

    2番目のプライベートはキーAlexei.pubからのものです。 ご覧のとおり、gitoliteは高度な情報をキーに追加し、すべてのシステムの相互作用を保証します。




8.結果に行きます:管理リポジトリの作業のアルゴリズム





9.結果を見る





10.エラーを確認します



  1. SSHおよびパスワードログイン

    これはすべて、authorized_keysが壊れているためです。

    または、sshサーバー設定。authorized_keysファイルの使用を含みます。

    gitユーザーの構成段階にいる場合、ssh-copy idを使用します。これは、pubバージョンのキーをコピーし、authorized_keysを編集します。 エコシステム全体を既にインストールしている場合:

    /home/git/.gitolite/src/gl-setup-authkeys -batch /home/git/.gitolite/keydir
  2. git @ gitoliteのようなアドレスは受け入れられません:testing.git

    /home/git/.gitolite/src/gl-setup-authkeys -batch /home/git/.gitolite/keydir





    これはすべて、authorized_keysが壊れているためです。 このコマンドを再度使用して生成します。
  3. cygwin bashシェルからパスワードなしで常にログインする

    /home/git/.gitolite/src/gl-setup-authkeys -batch /home/git/.gitolite/keydir





    すべて、authorized_keysが壊れているため、このコマンドで再度生成します。

    また、gitolite.rcにエントリをインストールしていない場合もあります。

    $ENV{PATH}="/usr/local/bin:/usr/bin:/bin";





    あなたの手段でそれを置きます。
  4. WindowsとCygwinの間でユーザーを同期する

    mkpasswd -l> / etc / passwd

    sshサーバーのログインとgitoliteシステムのサービスログインを再割り当てする場合に必要です。
  5. SSHサーバーを削除

    cygrunsrv -R sshd





    これはWindowsからcygserver sshサービスのみを削除しますが、ログインは残ります。

    これを行うには、ファイルから/ etc / ssh *を削除する必要があります。

    Windowsからcygserverログインを削除し、/ etc / passwdをコマンドと同期します

    mkpasswd -l >/etc/passwd





大きな夢のような小さなメモ






All Articles