আমি কীভাবে গিটকে ডিফল্টরূপে ssh করতে পারি এবং নতুন সংগ্রহস্থলের জন্য https নয়


205

এই দিনগুলি যখন আমি পাই সেটআপ পৃষ্ঠায় গিটহাবে একটি নতুন সংগ্রহশালা তৈরি করি:

git remote add origin https://github.com/nikhilbhardwaj/abc.git
git push -u origin master

এবং যখনই আমাকে কোন প্রতিশ্রুতিবদ্ধ হতে হবে তখন আমার গিটহাবের ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখতে হবে।

আমি নিজেই এটিতে পরিবর্তন করতে পারেন

git@github.com:nikhilbhardwaj/abc.git

মধ্যে .git/config। আমি এটি বেশ বিরক্তিকর মনে করি - ডিফল্টরূপে এসএসএইচ ব্যবহারের জন্য গিটটি কনফিগার করতে পারি এমন কোনও উপায় আছে কি?


আমি মনে করি @ মোওক্সের উত্তর সম্ভবত আপনি যা খুঁজছেন তার সাথে সর্বাধিক সামঞ্জস্যপূর্ণ। insteadOfকৌতুক হয়েছে প্রায় যেহেতু অন্তত 2012 আরো দেখুন কিভাবে রূপান্তর করতে git:URL গুলি http:URL গুলি
jww

উত্তর:


299

এসএসএইচ হওয়ার জন্য একটি সংগ্রহস্থলের উত্স শাখা সেট আপ করুন

গিটহাব রিপোজিটরি সেটআপ পৃষ্ঠাটি কেবলমাত্র প্রস্তাবিত কমান্ডের তালিকা (এবং গিটহাব এখন এইচটিটিপিএস প্রোটোকল ব্যবহার করার পরামর্শ দেয়)। গিটহাবের সাইটে প্রশাসনিক অ্যাক্সেস না থাকলে আমি তাদের প্রস্তাবিত আদেশগুলি পরিবর্তন করার কোনও উপায় জানি না।

আপনি যদি এসএসএইচ প্রোটোকলটি ব্যবহার করতে চান তবে সহজেই এর মতো একটি দূরবর্তী শাখা যুক্ত করুন (যেমন গিটহাবের প্রস্তাবিত আদেশের জায়গায় এই কমান্ডটি ব্যবহার করুন )। বিদ্যমান শাখাটি সংশোধন করতে, পরবর্তী বিভাগটি দেখুন।

$ git remote add origin git@github.com:nikhilbhardwaj/abc.git

প্রাক-বিদ্যমান সংগ্রহস্থলটি সংশোধন করুন

আপনি ইতিমধ্যে জানেন যে, HTTPS এর পরিবর্তে এসএসএইচ ব্যবহারের জন্য একটি পূর্ব-বিদ্যমান সংগ্রহস্থলটি স্যুইচ করতে, আপনি আপনার .git/configফাইলের মধ্যে রিমোট url পরিবর্তন করতে পারেন ।

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    -url = https://github.com/nikhilbhardwaj/abc.git
    +url = git@github.com:nikhilbhardwaj/abc.git

শর্টকাট হ'ল set-urlকমান্ডটি ব্যবহার করা :

$ git remote set-url origin git@github.com:nikhilbhardwaj/abc.git

এসএসএইচ-এইচটিটিপিএস স্যুইচ সম্পর্কে আরও তথ্য


ধন্যবাদ, আমি তাদের ডিফল্ট স্মার্ট https তৈরি করার বিষয়ে জানতাম না।
নিখিল

3
এটি উইন্ডোজ ব্যবহারকারীদের পক্ষে ভাল হতে পারে তবে লিনাক্সে এটি বেশ খানিকটা পিছনে ছিল: এসএসএস সর্বদা কাজ করে এবং স্মার্ট এইচটিটিপিএসের জন্য নতুন পাসওয়ার্ড ক্যাচিং কেবল উইন্ডোজে কাজ করে। "ম্যাক সংস্করণটি কোথায়?" এ একটি নোট রয়েছে তবে লিনাক্স ব্যবহারকারীদের জন্য একটি শব্দও নয় ।
MestreLion

আমার এটি যোগ করা উচিত, এই পদ্ধতিটি গিথুবের ম্যাক ক্লায়েন্টকে মোটেই হস্তক্ষেপ করে না। এটি পরিবর্তন করুন এবং আপনি উভয়ই কোনও সমস্যা ছাড়াই কমান্ড লাইন এবং গুই সংস্করণ (গিথুব ক্লায়েন্ট) গিট ব্যবহার করতে পারেন।
কমল দাğ

1
আবার set-urlআমাকে সাহায্য করুন! অনেক ধন্যবাদ !
guozqzzu

181
  • GitHub

    git config --global url.ssh://git@github.com/.insteadOf https://github.com/
    
  • বিট বালতি

    git config --global url.ssh://git@bitbucket.org/.insteadOf https://bitbucket.org/
    

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


4
যদি কেউ ডকুমেন্টেশনে এটি সন্ধান করতে চায় তবে অনুসন্ধান করুন url.<base>.insteadOf

2
এই কিছু জিনিস ভাঙ্গার জন্য সতর্কতা অবলম্বন করুন - আমি এই পরিবর্তনটি করার পরে হোমব্রিউয়ের কিছু কার্যকারিতা কাজ করা বন্ধ করে দেখেছি (যথা নন-ডিফল্ট সংস্করণ / শাখা ইনস্টল করা)
প্রিফিক্স

1
গিটল্যাবের জন্য: গিট কনফিগার - গ্লোবাল url.ssh: //git@gitlab.com/.insteadOf gitlab.com
MoOx

2
আমি মনে করি এটি গিট কনফিগার করা উচিত --global url.ssh: //git@github.com: .insteadOf github.com , কারণ গিথুব git@github.com পছন্দ করে: <ইউএসআরএনএমএল / <REPO> .git। ( git config --global url.git@github.com:.insteadOf https://github.com/এডিটি নিশ্চিতভাবে গিটার 2.7.4 এ কাজ করে))
গ্লেন কেইন

1
যেহেতু এখানে একটি মন্তব্যে হোমব্রব সমস্যার কথা বলা হয়েছে --globalএটি একটি PR রেপো ভিত্তিতে অপসারণ এবং এটি করা ভাল ধারণা হতে পারে ।
পাইলিনাক্স

58

ট্রেভর দ্বারা উপলব্ধ প্রতিক্রিয়া সঠিক

তবে আপনি এখানে যা যুক্ত করতে পারেন তা এখানে .gitconfig:

# Enforce SSH
[url "ssh://git@github.com/"]
  insteadOf = https://github.com/
[url "ssh://git@gitlab.com/"]
  insteadOf = https://gitlab.com/
[url "ssh://git@bitbucket.org/"]
  insteadOf = https://bitbucket.org/

2
অনেক সহজ +1
পিয়ার্সিপি

এই কৌশলটির জন্য +1 । এটি কার্নেল লোকেদের দ্বারাও প্রস্তাবিত। কার্নেল newbies মেলিং তালিকায় গিট টানও দেখুন ।
jwww

অনেক ক্লিনার সমাধান - এবং জন্য মহান golang প্রকল্প যেখানে HTTPS ডিফল্ট "পেতে যান" এবং এক স্বতন্ত্রভাবে ব্যক্তিগত Repos ইত্যাদি জন্য পরিবর্তে SSH URL গুলি সেট করতে যেমন চান
colm.anseo

1
Gitlab জন্য: [url "ssh://git@gitlab.com/"] insteadOf = https://gitlab.com/রয়েছে pushInsteadOfযদি তোমরা ধাক্কা URL টি প্রভাবিত করার কিন্তু আনা যাবে না চাই। git remote -vকার্যকর ইউআরএল পরিদর্শন করতে ব্যবহার করতে পারেন গিট ব্যবহার করা হচ্ছে।
বেনি চেরনিয়াভস্কি-পাসকিন

এটি কমপক্ষে বিদ্যমান সংগ্রহস্থলের জন্য কাজ করে না।
অ্যান্ড্রু কোস্টার

4

আপনি সম্ভবত সংক্ষেপে ssh এর পরিবর্তে https এ সংগ্রহস্থলটিকে ক্লোন করেছেন। আমি গিথুবে বহুবার এই ভুল করেছি। ক্লোন করার সময় আপনি প্রথমে ssh লিঙ্কটি অনুলিপি করেছেন তা নিশ্চিত করুন, https লিঙ্কের পরিবর্তে।


Ssh লিঙ্কটি দিয়ে একটি নতুনকে ক্লোন করা দরকার
কোডেনমেজারো

আপনি এইচটিটিপি থেকে এসএসএইচে রেপো লিঙ্কটিও পরিবর্তন করতে পারেন, অন্যান্য উত্তরগুলি দেখুন।
মাইক লিয়নস

3

আপনাকে https এ নয় ssh এ ক্লোন করতে হবে।

তার জন্য আপনার ssh কী সেট করতে হবে। আমি এই ছোট স্ক্রিপ্টটি প্রস্তুত করেছি যা এটি স্বয়ংক্রিয়ভাবে চলে:

#!/usr/bin/env bash
email="$1"
hostname="$2"
hostalias="$hostname"
keypath="$HOME/.ssh/${hostname}_rsa"
ssh-keygen -t rsa -C $email -f $keypath
if [ $? -eq 0 ]; then
cat >> ~/.ssh/config <<EOF
Host $hostalias
        Hostname $hostname *.$hostname
        User git
    IdentitiesOnly yes
        IdentityFile $keypath
EOF
fi

এবং এটি চালান

bash script.sh myemail@example.com github.com

আপনার দূরবর্তী url পরিবর্তন করুন

git remote set-url origin git@github.com:user/foo.git

বিষয়বস্তু যোগ ~/.ssh/github.com_rsa.pubgithub.com আপনার SSH কী-তে

সংযোগ পরীক্ষা করুন

ssh -T git@github.com

0

এসএসএইচ ফাইল

~/.ssh/config file
Host *
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    LogLevel QUIET
    ConnectTimeout=10
Host github.com
        User git
        AddKeystoAgent yes
        UseKeychain yes
        Identityfile ~/github_rsa

পুনরায় নাম / .git / কনফিগার সম্পাদনা করুন

[remote "origin"]
        url = git@github.com:username/repo.git
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.