গিট অন কাস্টম এসএসএইচ পোর্ট


149

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

git clone git@mydomain.com:gitolite-admin

কাস্টম ssh পোর্ট নম্বর ব্যবহার করে এটি গোপন করার কোনও উপায় আছে কি?

আমি উইন্ডোতে সাইগউইন চালাচ্ছি উল্লেখ করা উচিত। আমি একাধিক জায়গা দেখেছি ~/.ssh/configযেমন ফাইলটিতে কাস্টম পোর্ট যুক্ত করতে port

Host mydomain.com
    Port 12345

তবে সাইগউইনে, ফাইলটি বিদ্যমান বলে মনে হচ্ছে না।


8
আপনার ব্যবহারকারীর হোম ডিরেক্টরিতে ফাইলটির পাঠ্য নাম .ssh/config(নেই conf)। এটি বেসিক অপারেশনের জন্য প্রয়োজন হয় না এবং এটি ডিফল্টরূপে উপস্থিত হয় না। আপনাকে এটি তৈরি করতে হবে। ব্যবহার করে দেখুন vim ~/.ssh/config(অথবা আপনার পছন্দের, ইনস্টল টেক্সট এডিটর ব্যবহার করুন) খুলতে / এটি তৈরি করুন।
ক্রিস জনসন

2
ডুপ্লিকেট: stackoverflow.com/questions/3596260/...
Kzqai

উইন্ডোজ পড়তে /Users/USERX/.ssh/configআপনার নিজের HOMEস্থানীয় পরিবেশটি সেট করতে হবে /Users/USERX
কেনারব

উত্তর:


327
git clone ssh://git@mydomain.com:[port]/gitolite-admin

নোট করুন যে বন্দর নম্বরটি বর্গাকার বন্ধনী ছাড়াই সেখানে থাকা উচিত: []


এটি কাজ করে তবে ক্রিস জনসন সংশোধন কাস্টম পোর্ট নম্বর ব্যবহার করার সময় একটি ক্লিন
ইউআরএলকে অনুমতি দেয়

6
:-) আপনি যদি আমাকে জিজ্ঞাসা করেন, গিট ইউআরএল সিনট্যাক্সটি অশুচি, এবং
উপরেরটি

আমি স্বীকার করব যে আপনার দেওয়া সিনট্যাক্সটি আরও বর্ণনামূলক তবে কাস্টম পোর্ট নম্বরটিতে যুক্ত করা মনে রাখার বিষয়টি বিরক্তিকর। সেই পোর্ট নম্বরটি কনফিগার করা এবং তারপরে এটি মনে রাখা দরকার না যে এটি কিছুটা সহজ তবে তাদের নিজের পক্ষে (এই কারণেই এটি উভয় উপায়ে করা যেতে পারে) :)
ryanzec

48
মনে রাখবেন আপনি প্রোটোকলটি সরিয়ে ফেললে এটি কাজ করবে না। উদাহরণস্বরূপ, আপনি যদি নিম্নলিখিতগুলির চেষ্টা করে থাকেন তবে এটি কার্যকর হবে না। git clone git@mydomain.com:[port]/gitolite-admin
বিজয় রুংটা

1
প্লিঙ্ক সহ উইন্ডোজটিতে, কাজ বাক্য গঠনটি মনে হয়git clone ssh://git@mydomain.com:port/home/user/gitolite-admin
রোমান প্লিল

18

উপরের উত্তরগুলি দুর্দান্ত এবং দুর্দান্ত তবে আমার মতো নতুন গিট ব্যবহারকারীদের পক্ষে পরিষ্কার নয়। সুতরাং কিছু তদন্ত পরে, আমি এই নতুন উত্তর প্রস্তাব।

1 ssh কনফিগারেশন ফাইল পদ্ধতিতে সমস্যা কি?

যখন কনফিগারেশন ফাইল উপস্থিত না থাকে আপনি একটি তৈরি করতে পারেন। portকনফিগারেশন ফাইলের পাশাপাশি অন্যান্য ssh কনফিগারেশন বিকল্প অন্তর্ভুক্ত থাকতে পারে: user IdentityFileএবং তেমনিভাবে, কনফিগার ফাইলটি দেখতে ভাল লাগে

Host mydomain.com
    User git
    Port 12345

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

2 এসএসএল ইউআরএল উপায় সম্পর্কে কি?

এটি দুর্দান্ত, একমাত্র আমাদের জানা উচিত যে গিটে ssh url এর জন্য দুটি সিনট্যাক্স রয়েছে

  • স্ট্যান্ডার্ড সিনট্যাক্স ssh://[user@]host.xz[:port]/path/to/repo.git/
  • সিনট্যাক্সের মতো scp [user@]host.xz:path/to/repo.git/

ডিফল্ট Gitlab এবং গিটহাব দ্বারা দেখাবে সিনট্যাক্স মত scp কমান্ড URL, এবং আমরা কাস্টম SSH পোর্ট দিতে পারব না। সুতরাং ssh পোর্ট পরিবর্তন করতে , আমাদের স্ট্যান্ডার্ড সিনট্যাক্স ব্যবহার করতে হবে


14

আপনি যখন আপনার হোম ডিরেক্টরি থেকে কোনও আপেক্ষিক পথ চান (কোনও ইউএনআইএক্স এ) আপনি এই অদ্ভুত বাক্য গঠনটি ব্যবহার করেন:

ssh://[user@]host.xz[:port]/~[user]/path/to/repo

উদাহরণস্বরূপ, যদি /home/jack/projects/jillwebসার্ভারে রেপো চালু থাকে jill.comএবং আপনি পোর্ট 4242 তে শুনার jackসাথে লগ ইন করছেন sshd:

ssh://jack@jill.com:4242/~/projects/jillweb

এবং হিসাবে লগ ইন করার সময় jill(ধরে নেওয়া যে আপনার কাছে ফাইলের অনুমতি রয়েছে):

ssh://jill@jill.com:4242/~jack/projects/jillweb


মানুষ এই কিছু সময়ের জন্য স্টাম্পড ছিল এবং ঠিক আমার জানা দরকার ছিল। আপনি কি জানেন যেখানে এটি নথিভুক্ত করা হয়েছে?
শন উইলসন

@ শন উইলসন দুঃখিত, আমি খুব মনে করি না। তবে উত্তরটি পেতে আমার কিছুটা সময় লেগেছে তাই আমি বুঝতে পেরেছিলাম যে আমার এটি এখানে ভাগ করা উচিত, কারণ এটি আমার মৃতপ্রায়গুলির মধ্যে একটি ছিল।
ড্যানিয়েল সান্টোস

1
ধন্যবাদ! বিশেষত যদি আপনি একটি ভাগ করা হোস্টিং পরিকল্পনায় থাকেন তবে user [ব্যবহারকারী] অংশটি গুরুত্বপূর্ণ। এটি আমার রেপো ক্লোন করতে সহায়তা করেছে।
জিম উইলসন

2
@ শন উইলসন পথের বৈশিষ্টটি একটি ইউনিক্স পাথ। আপনি যদি কোনও ইউএনআইএক্স সিস্টেমে লগইন হন তবে হোম ডিরেক্টরিটি a একটি সংক্ষিপ্তরূপ হ'ল এটি প্রচুর টাইপিং সংরক্ষণ করতে উভয়ই কার্যকর এবং যেহেতু হোম ডিরেক্টরিটি অ-মানক স্থানে থাকতে পারে। উপরেরটি উইন্ডোজ সার্ভারে কাজ না করে।
স্যামুয়েল -স্লুন্ড

@ সামুয়েল -স্লুন্ড আপনাকে ধন্যবাদ, আমি আমার উত্তর আপডেট করেছি। আমি প্রায়শই উইন্ডোজের কথা ভুলে যাই কারণ, ... ভাল আমার অর্থ কৃপণ হওয়া উচিত নয়, তবে তুলনায় এটি ভয়াবহ। কিছুই কম নয়, এটি একটি গুরুত্বপূর্ণ পার্থক্য।
ড্যানিয়েল সান্টোস

9

(আপডেট: কয়েক বছর পরে গুগল এবং কুনওয়ান্ট "এয়ারলাইনস" এখনও "গিট অ-ডিফল্ট এসএস পোর্ট" অনুসন্ধান করার জন্য আমাকে এখানে পাঠায়) নতুন গিট সংস্করণে সম্ভবত আরও ভাল উপায় হ'ল GIT_SSH_COMMAND ENV.VAR ব্যবহার করুন:

GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path

এটিতে অন্য কোনও এসএসএস উপযুক্ত বিকল্প (পোর্ট, প্রাইভ.কি, আইপিভি 6, পিকেসিএস # 11 ডিভাইস, ...) অনুমতি দেওয়ার অতিরিক্ত সুবিধা রয়েছে।

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