প্রক্সি পিছনে গিটহাব উইন্ডোজ ক্লায়েন্ট


93

আমি উইন্ডোজ কাজ করার জন্য গিটহাব ক্লায়েন্ট পেতে চেষ্টা করছি। আমি কর্পোরেট প্রক্সি এবং ফায়ারওয়ালের পিছনে কর্পোরেট উইন 7 এক্স 64 কম্পিউটারে আছি। অন্যান্য বিভিন্ন পোস্ট অনুসরণ এবং পরিবেশের ভেরিয়েবল এবং কনফিগার ভেরিয়েবলগুলির একাধিক সংমিশ্রণ নিয়ে পরীক্ষা-নিরীক্ষা করা আমার ক্লোনিং ডোমেন ব্যবহারকারীর আইডি এবং পাসওয়ার্ড সহ HTTPS_PROXY এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে ক্লোনিং এবং কাজের আপডেটে ধাক্কা দেওয়ার একমাত্র উপায় আমি খুঁজে পেয়েছি।

এটি সুরক্ষা দৃষ্টিকোণ থেকে অগ্রহণযোগ্য। এটি কাজ করার অন্য কোন উপায় আছে?

অতিরিক্ত নোট:

নিম্নলিখিত কাজ করেছে:

  • HTTPS_PROXYমান সহ একটি পরিবেশ পরিবর্তনশীল যুক্ত করুনhttp://[domain]\[userid]:[password]@someproxy.mycorp.com:8080

নিম্নলিখিতগুলি কাজ করে না :

  • HTTPS_PROXYভেরিয়েবল থেকে ব্যবহারকারী আইডি এবং পাসওয়ার্ড ছাড়
  • এনভায়রনমেন্ট ভেরিয়েবল HTTP_PROXY(না S) বলা হচ্ছে
  • http.proxyবৈশ্বিক কনফিগারেশন ফাইলে ভেরিয়েবল যুক্ত করা হচ্ছে ( .gitconfig)
  • https.proxyবৈশ্বিক কনফিগারেশন ফাইলে ভেরিয়েবল যুক্ত করা হচ্ছে

সব ক্ষেত্রেই, গিটহাব ক্লায়েন্ট প্রক্সিটি সনাক্ত করতে পারে না: ফাইলের সামগ্রীটি TheLog.txt সর্বদা শুরুতে নিম্নলিখিতটি দেখায়:

[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy

এবং এর পরে বেশ কয়েকটি ব্যর্থ প্রক্সি প্রমাণীকরণের প্রচেষ্টা আউটপুট অনুসরণ করে, এর সবগুলিই "শংসাপত্রগুলি অনুপস্থিত" নির্দেশ করে।


4
পরিবেশের পরিবর্তনশীল যুক্ত করা আমার পক্ষে কৌশলটি করেছে তবে এটি একটি অগ্রহণযোগ্য সমাধান, কারণ এটি পরিবেশের ভেরিয়েবলগুলি অ্যাক্সেস সহ কোনও অ্যাপ্লিকেশনটিতে আমার ডোমেন / পাসওয়ার্ডকে প্রকাশ করে।
ফ্যাব্রিকিও

জ্যাকোবেনসন /?p=302#sthash.DzPYdGUU.dpbs ব্যাখ্যা করেছেন যে এটি গুই (যা উইন্ডোজ সেট প্রক্সিটি সঠিকভাবে ব্যবহার করে) দ্বারা গিট কমান্ডের জন্য পর্দার পিছনে এমএসজিগিট কল করে। এমএসএসজিট http অনুরোধগুলির জন্য libcurl ব্যবহার করে, যা উইন্ডোজ প্রক্সি সেটিংস ব্যবহার করে না। Gitub.com/libgit2/libgit2sharp এ libgit2sharp সহ বেশ কয়েকটি ক্ষেত্রে এটি ঠিক করার কাজ চলছে ।
অ্যান্ড্রু হিল

উত্তর:


131

আপনার ব্যবহারকারী ডিরেক্টরিতে আপনার '.gitconfig' ফাইলটিতে এই এন্ট্রিগুলি যুক্ত করুন (% USERPROFILE% এ যান):

[http]
    proxy = http://<proxy address>:<proxy port>

[https]
    proxy = https://<proxy address>:<proxy port>

এবং আপনি যদি আপনার পাসওয়ার্ডটি সরলরেখাতে সঞ্চয় করতে না চান, আমি সিএনটিএলএম এর মতো স্থানীয় প্রক্সি ফরোয়ার্ডার ব্যবহার করব যা আপনাকে এর মাধ্যমে সমস্ত ট্র্যাফিককে পরিচালনা করার অনুমতি দেয় এবং পাসওয়ার্ডগুলি হ্যাশ করে সংরক্ষণ করতে পারে।


মূল প্রশ্নের বিপরীতে, যদি আপনার পাসওয়ার্ডটি সরল পাঠ্যে থাকে তবে আপনার যদি যত্ন না থাকে তবে এগুলি যুক্ত করুন:

[http]
    proxy = http://<username>:<password>@<proxy address>:<proxy port>

[https]
    proxy = https://<username>:<password>@<proxy address>:<proxy port>

প্রক্সিটির বিরুদ্ধে আপনার অনুমোদনের প্রয়োজন হলে এডুফিনের উত্তরটি দেখুন: প্রক্সি = http: // <ব্যবহারকারীর নাম: <পাসওয়ার্ড> @ <কর্পোরেট প্রক্সি>: <port>
জান হোমস

4
@ জ্যানহোমস মূল প্রশ্নটি বিশেষভাবে জিজ্ঞাসা করেছিল যে কীভাবে
প্লেইন্টেক্সটে

@ সোগার যদি আমার পাসওয়ার্ডটিতে "@" অক্ষর অন্তর্ভুক্ত থাকে তবে কীভাবে পাসওয়ার্ডটি কনফিগার করব, আপনার সহায়তার জন্য ধন্যবাদ।
উপকূলরেখা


4
আপনি যদি সিএনটিএলএম ব্যবহার করছেন তবে নিশ্চিত হয়ে নিন যে আপনি প্রস্তাবিত 127.0.0.1পরিবর্তে প্রক্সিটি নির্দেশ করেছেন localhost। উইন্ডোজে, এটি প্রদর্শিত হয় যে লোকালহোস্ট প্রথমে আইপিভি 6 ঠিকানার দিকে নির্দেশ করে, যা সিএনটিএলএম শোনেনি। যেমন, গিটটি আইপিভি 4 অ্যাড্রেসে স্যুইচ করার আগে সময়সীমা (কয়েক মিনিট) অবধি অপেক্ষা করবে will
রোনান পাইক্সিও

14

উপরের সমস্ত কিছুর চেষ্টা করেছেন - এবং সফল হন নি, কেবলমাত্র আমাকে সাহায্য করেছিল সিএনটিএলএম - http://cntlm.sourceforge.net/

এটি ইনস্টল করুন এবং সিএনটিএলএম-এইচ চালান, কর্প প্রক্সির অনুমোদনের চেয়ে সিএনটিএলএম আউটপুট দিয়ে cntlm.ini ফাইল সম্পাদনা করুন, উইন্ডোজ পরিষেবাটি পুনরায় চালু করুন। এর সাথে .gitconfig আপডেট করুন:

[https] proxy = localhost:3128
[http] proxy = localhost:3128

এখন সিএনটিএলএম সমস্ত প্রমাণীকরণ করবে এবং আপনি কর্প কর্পসের প্রকৃতির পিছনে গিটহাব (এবং ড্রপবক্স, বিটিডাব্লু) ব্যবহার করতে সক্ষম হবেন। অন্তত পরবর্তী পাসওয়ার্ড পরিবর্তন হওয়া পর্যন্ত :) (সিএনটিএলএম -H স্টাফের চেয়ে আবার)


4
যদি গিট ক্লোন, আনার বা টানার মতো দূরবর্তী ক্রিয়াকলাপগুলি সম্পূর্ণ হতে খুব বেশি সময় নেয় তবে .gitconfig এ স্যুইচ করার চেষ্টা করুন: [https] প্রক্সি = 127.0.0.1:3128 [http] প্রক্সি = 127.0.0.1:3128
ঝাঁম

কি উইন্ডোজ পরিষেবা পুনরায় চালু করবেন?
মুকুস

@ মুকুস সিএনটিএলএম - যদি সঠিকভাবে মনে থাকে তবে এটি ইনস্টলেশন পরে সার্ভিস মোডে চলে।
অ্যান্টন

আমি পরিবর্তনটি করেছি, এটি আবার চালু করেছি এবং এটি এখনও কার্যকর হয় না।
মুকুস

8

আমি আমাদের কর্পোরেট প্রক্সি সহ গিটহাব শেলকে কাজ করতে সক্ষম করেছিলাম। আমি গিটহাব শেল শুরু করছি এবং নিম্নলিখিত কমান্ডটি কার্যকর করব:

export http_proxy=http://<username>:<password>@<corporate proxy>:3128

আমি সত্যিই জিইউআইকেও কাজ করতে চাই। তবে আমি উইন্ডোজ গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবল সেট করতে চাই না যাতে আমার কর্পোরেট শংসাপত্র সম্পর্কিত তথ্য রয়েছে।

আশ্চর্যের বিষয় হল গিথহাব জিইউআই ক্লায়েন্ট ব্যবহারকারী প্রমাণীকরণের জন্য গিটহাবের সাথে সংযোগ করতে সক্ষম তবে কেবল ক্লিটিং, টানানো এবং গিটহাব থেকে প্রকল্পগুলি ঠেলে দেওয়ার ক্ষেত্রেই সমস্যা। মনে হচ্ছে সমস্যাটি গিট বাস্তবায়নের সাথে। আমি গিটার গ্লোবাল সেটিংসে আমার শংসাপত্রগুলি না রেখে আমাদের প্রক্সি দিয়ে চালানোর জন্য গিটটি কনফিগার করতে সক্ষম হয়েছি এবং টান বা ধাক্কা দেওয়ার অনুরোধগুলি সম্পাদন করার সময় এটি আমার শংসাপত্রগুলির জন্য জিজ্ঞাসা করেছিল। তবে এটি কেবল গিট শেল-এ কাজ করছিল।


এর কারণ সম্ভবত গিটহাব কোনও উপাদান দিয়ে অভ্যন্তরীণভাবে প্রমাণীকরণ করে যা ওএস থেকে প্রক্সি তথ্য টানতে পারে, সম্ভবত কিছু সিঙ্গলসাইন সমাধান, যখন গিট নিজেই দেয় না। সোর্সট্রি নিয়ে আমারও একই সমস্যা। আমি আরও দেখতে পেলাম যে গিট কাজ করে, সোর্স ট্রি ব্যবহার অসম্ভব করে তোলে, কাজ করতে অসম্ভব দীর্ঘ সময় লাগে।
রোনান পাইকাসো

এটি সম্ভবত কারণ গিথুব গিট বন্দরটি ব্যবহার করার চেষ্টা করছেন যা সাধারণত এটি আইটি লোকেরা দেখতে সাধারণ হিসাবে ফিল্টার হয় না। একটি বিকল্প জন্য আমার উত্তর দেখুন।
ড্রাগন 788

7

আপনি যদি কোনও কর্পোরেটটিতে উইন্ডোজের জন্য গিটহাব ব্যবহার করেন, তবে সম্ভাবনা বেশি থাকে যে আপনি কোনও বড় খারাপ ফায়ারওয়াল / প্রক্সি পিছনে রয়েছেন। উইন্ডোজের জন্য গিটহাবের বিকল্পগুলি সেট করার জন্য তার জিইউআইতে এখনও প্রক্সি পরামিতি নেই।

আপনার কর্পোরেট প্রক্সিটি ব্যবহার করতে উইন্ডোজের জন্য গিটহাব কনফিগার করতে, সাধারণত সি: \ ব্যবহারকারীগণ \ .গিটকনফিগ বা সি: \ নথি এবং সেটিংস \ .gitconfig এ পাওয়া .gitconfig ফাইলটি সম্পাদনা করুন

উইন্ডোজ জন্য গিটহাব বন্ধ করুন; .Gitconfig এ, কেবল যুক্ত করুন

[https] প্রক্সি = প্রক্সি.আউটকম্পানি.কম: রফতানি


4

আমি এই সমস্যাটিও চালিয়েছি, এবং এটির পাশাপাশি কিছুটা খনন করার চেষ্টা করেছি (ক্লায়েন্টকে বিচ্ছিন্ন করে)।

কোডের টুকরা যা আমরা দেখছি লগ বার্তা উত্পন্ন করে তা নিম্নরূপ:

private static void LogProxyServerConfiguration()
{
    WebProxy defaultProxy = WebProxy.GetDefaultProxy();
    string str = defaultProxy.Address != (Uri)null ? defaultProxy.Address.ToString() : "(None)";
    StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Proxy information: {0}", str);
    try
    {
        if (defaultProxy.Credentials == null)
        {
            StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Couldn't fetch creds for proxy", new object[0]);
        }
        else
        {
            NetworkCredential credential = defaultProxy.Credentials.GetCredential(GitHubClient.GitHubDotComUri, "Basic");
            StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Proxy is authenticated: {0}", credential != null && !string.IsNullOrWhiteSpace(credential.UserName));
        }
    }
    catch (Exception ex)
    {
        StartupLogger.log.InfoException("Couldn't fetch creds for proxy", ex);
    }
}

সুতরাং এই ব্লকটি কেবলমাত্র আইই তে সেটআপ করা প্রক্সি তথ্য লগ করে । কনফিগার ফাইল বা পরিবেশগত ভেরিয়েবলগুলিতে আমাদের কী সেটআপ রয়েছে তাতে লগ বার্তাটির কোনও ফল নেই।


3

আমি আপনার ফায়ারওয়াল সম্পর্কে জানি না, তবে আমার ক্যাম্পাস প্রক্সি ব্যবহার করে

আপনি কোন গিট গুই ব্যবহার করেন? সম্পাদনা : সবেমাত্র লক্ষ্য করা গেছে যে আপনি উইন্ডোজের জন্য গিথব ক্লায়েন্ট ব্যবহার করছেন

আমি কচ্ছপটি ব্যবহার করছি এবং প্রক্সি সেট করা খুব সহজ। কচ্ছপগুলি> নেটওয়ার্ক, যে কোনও জায়গায় ডান ক্লিক করুন, প্রক্সি সার্ভার সক্ষম করুন এবং সার্ভারের ঠিকানা, ব্যবহারকারীর নাম এবং পাসওয়ার্ড সেট করুন। সম্পন্ন

যতদূর আমার মনে আছে, কাছিমগুলি গিথুব-সহ-বাইরে-বাক্সেও কাজ করবে।


2

গিথুবে প্রক্সি সেট করার উপায় এখানে

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>

এখানে আমার কলেজে আমাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ড নেই, তাই যদি আমাদের কলেজ আইপি 172.16.10.10 হয় এবং পোর্টটি 8080 হয়

git config --global http.proxy http://172.16.10.10:8080
git config --global https.proxy http://172.16.10.10:8080

PS -> আমি প্রক্সি সেট করার জন্য এই পদ্ধতিটি ব্যবহার করার পরামর্শ দেব কারণ জিনিসগুলি ঠিক জায়গায় পড়ে যাবে কারণ আপনি আরও উত্সটি শিখবেন



1

আমাদের জন্য, সমাধান দুটি পৃথক জিনিস জড়িত। প্রথমে, সোগারের উত্তরে বর্ণিত হিসাবে, আপনাকে অবশ্যই আপনার .gitconfigফাইলে প্রবেশ করাতে হবে %USERPROFILE%

[http]
    proxy = http://<proxy address>:<proxy port>

[https]
    proxy = https://<proxy address>:<proxy port>

দ্বিতীয়ত, (এবং এটি আমাদের জন্য অনুপস্থিত অংশ ছিল) অ- অনুমোদনপ্রাপ্ত প্রক্সি ট্র্যাফিকের অনুমতি দেওয়ার জন্য আপনাকে প্রক্সি সার্ভারে একটি ব্যতিক্রম কনফিগার করতে হবে*.github.com

আইপিরিসমে এটি দেখতে এটির মতো দেখাচ্ছে: এখানে চিত্র বর্ণনা লিখুন

সমস্যাটি তেমন প্রক্সি নয়, তবে প্রমাণীকরণ । প্রমাণীকরণের প্রয়োজনীয়তাটিকে বাইপাস করে প্রয়োজনীয় যোগাযোগটি ক্লিট করতে এবং গিটহাব ডেস্কটপ ক্লায়েন্ট ব্যবহার করে প্রকল্পগুলির সাথে কাজ করার অনুমতি দেয়।

এছাড়াও নোট করুন যে এই পদ্ধতির জন্য ফাইলটিতে প্রক্সি শংসাপত্রগুলি সংরক্ষণ করার প্রয়োজন ছিল না.gitconfig

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.