git - এসএসএইচ কী-এখনও পাসওয়ার্ড এবং পাসফ্রেজ জিজ্ঞাসা
github ssh (15)
যখন আমি একটি সংগ্রহস্থল ক্লোন করি তখন আমি সবসময় আমার ব্যবহারকারী নাম এবং পাসওয়ার্ড জিজ্ঞাসা করার জন্য জিথাবের সাথে 'নির্বাণ' করছি। আমি এই পদক্ষেপটি বাইপাস করতে চাই কারণ এটি আমার কার্যপ্রবাহের মধ্যে বিরক্তিকর।
আমি এই নির্দেশিকাটি ব্যবহার করে একটি SSH কী (যা আমি সফলভাবে করেছি) সেট আপ করার চেষ্টা করেছি। https://help.github.com/articles/generating-ssh-keys এবং আমি সফল ছিলাম।
আমার সমস্যা হল যে আমি এখনও আমার গীথব পাসওয়ার্ড এবং পাসফ্রেজের জন্য অনুরোধ করছি যখন একটি সংগ্রহস্থান ক্লোন করে (এসএসএইচ ব্যবহার করে)। আমার বুদ্ধি ছিল যে আমি এই এসএসএইচ কী সেট আপ করার পরে, আমি আর এটা করতে হবে না।
আমি কি জিজ্ঞাসা করতে চাই তা নিশ্চিত না, তাই আমি শুধু আমার লক্ষ্য বর্ণনা করব।
আমি আমার Github তথ্য সব সময় রাখা ছাড়া রিপোজিটরি ক্লোন করতে সক্ষম হতে চান ।
আমি কি আমার এসএসএইচ কী দিয়ে অনুপস্থিত? কেউ যদি কিছু নির্দেশনা বা সংস্থান সরবরাহ করতে পারে তবে আমি কৃতজ্ঞ থাকব, কারণ এটি GitHub এ এসএসএইচ প্রমাণীকরণের সময় সর্বদা হারিয়ে গিয়েছিল।
আমার জ্ঞান থেকে, এটি একটি কমান্ড যা জিনিসগুলি সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করে, এখানে আমার কনসোল থেকে আউটপুট হয়:
~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
যখন আমি আমার পাসওয়ার্ড ইনপুট, প্রথম যে ব্যর্থ হওয়া উচিত? তারপর, যখন আমি আমার পাসফ্রেজ লিখি, এটি পাস করে।
Keychain ছাড়া আইডেন্টিটি যোগ করুন
এমন সময় থাকতে পারে যেখানে আপনি কীচেনাতে পাসফ্রেজ সঞ্চয় করতে চান না, তবে বার বার পাসফ্রেজ লিখতে চান না।
আপনি এই মত করতে পারেন:
ssh-add ~/.ssh/id_rsa
এটি আপনাকে পাসফ্রেজের জন্য জিজ্ঞাসা করবে, এটি লিখুন এবং এটি পুনরায় শুরু না হওয়া পর্যন্ত এটি আবার জিজ্ঞাসা করবে না।
কীচেন ব্যবহার করে পরিচয় যোগ করুন
@ ড্যানিশ মন্তব্যগুলিতে উল্লেখ করেছেন যে, আপনার কীচিনে এটি সংরক্ষণ করে পাসফ্রেজটি পুনরারম্ভের মাধ্যমে চালিয়ে যেতে, আপনি এই ধরনের পরিচয় যোগ করার সময় -K
বিকল্পটি (উবুন্টুর জন্য -k
) ব্যবহার করতে পারেন:
ssh-add -K ~/.ssh/id_rsa
আবার, এটি আপনাকে পাসফ্রেজের জন্য জিজ্ঞাসা করবে, এটি লিখুন এবং এই বার এটি কখনই এই পরিচয়টির জন্য আবার জিজ্ঞাসা করবে না।
Github দ্বারা https
দ্বারা সরবরাহিত ssh
দূরবর্তী url ব্যবহার ssh
।
আপনি আপনার রিপোজিটরি জন্য ssh ব্যবহার করছেন তা নিশ্চিত করুন
[email protected]:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)
যদি আপনার রিমোট https ব্যবহার করে তবে https ব্যবহার করবেন না, এটি পাসওয়ার্ড জিজ্ঞাসা করবে, এমনকি যদি আপনি জিথবকে পাবলিক কী যুক্ত করে থাকেন এবং ssh-এজেন্টের ব্যক্তিগত কী যোগ করেন। নীচে সর্বদা পাসওয়ার্ড জিজ্ঞাসা করবে
[email protected]:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)
আপনি উইন্ডোজ ব্যবহার করছেন, এটা আমার জন্য কাজ করেছে:
eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
এটি দ্বিতীয় কমান্ডে পাসফ্রেজের জন্য জিজ্ঞাসা করবে, এবং এটিই এটি।
আপনি যদি HTTPs
গুলি URL গুলির সাথে কাজ করেন তবে এটি সর্বদা আপনার ব্যবহারকারী নাম / পাসওয়ার্ড জিজ্ঞাসা করবে।
ক্লোন / সেটিং রিমোট করার সময় আপনি সঠিকভাবে SSH
ব্যবহার করছেন। তারপরে আপনার পাসওয়ার্ড মনে রাখার জন্য আপনার একটি ssh-agent আছে তা নিশ্চিত করুন। এই ভাবে, আপনি শুধুমাত্র একবার আপনার পাসফ্রেজটি টার্মিনাল অধিবেশন দ্বারা প্রবেশ করবেন।
এটি এখনও খুব বিরক্তিকর হলেও, পাসফ্রেজ ছাড়াই কেবল একটি ssh-key সেট করুন।
আমার একই সমস্যা এবং সমাধান ছিল:
দূরবর্তী URL এর https থেকে ssh রূপান্তর করতে এই github ডক দেখুন। রিমোট এর URL ssh অথবা https কিনা তা পরীক্ষা করার জন্য, git দূরবর্তী -v ব্যবহার করুন। Https থেকে ssh এ স্যুইচ করতে: git রিমোট সেট-url origin [email protected]: USERNAME / REPOSITORY.git @jiYem
আমি এখানে সব উত্তর চেষ্টা করে এবং এই উত্তর কোন কাজ ! আমার পাসওয়ার্ড আমার ম্যাকের সেশন / পুনঃসূচনাগুলির মধ্যে স্থির থাকবে না।
github.com/lionheart/openradar-mirror/issues/15361 এবং এই টুইটার আলোচনাটি পড়ার থেকে আমি যা খুঁজে পেয়েছি তা হল অ্যাপল ইচ্ছাকৃতভাবে github.com/lionheart/openradar-mirror/issues/15361 10.12 সিয়েরার এসএসএইচ এজেন্টের আচরণ পরিবর্তন করে আগের এসএসএইচ কীগুলি স্বয়ংক্রিয়ভাবে লোড করবে না। এল ক্যাপ হিসাবে একই আচরণ বজায় রাখার জন্য আমি নিম্নলিখিতটি করেছি:
-
ssh-add -K ~/.ssh/id_rsa
দ্রষ্টব্য: আপনার id_rsa কী কোথায় অবস্থিত তা পরিবর্তন করুন। -
ssh-add -A
নিম্নলিখিত
~/.ssh/config
ফাইলটি তৈরি করুন (অথবা এটি উপস্থিত থাকলে সম্পাদনা করুন):Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
এবং এখন আমার পাসওয়ার্ডটি আমার ম্যাকের রিস্টার্টের মধ্যে মনে রাখা হয়!
আমি চালানো ছিল:
eval `ssh-agent -s`
ssh-add
দ্রষ্টব্য : প্রতিটি পুনঃসূচনা করার পরে আপনাকে এটি আবার করতে হবে।
সমাধান here পাওয়া যায়।
এই উত্তর Ubuntu
আমার জন্য কাজ করেছে।
রিমোটের URL টি https থেকে ssh রূপান্তর করতে এই GitHub ডকটি দেখুন। https://help.github.com/articles/changing-a-remote-s-url/
রিমোট এর URL ssh অথবা https কিনা তা পরীক্ষা করার জন্য, git remote -v
ব্যবহার করুন।
Https থেকে ssh এ স্যুইচ করতে:
git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
ম্যাক OSX এ আপনি কীচেন ব্যবহার করে আপনার ব্যক্তিগত কীটি ব্যবহার করতে পারেন:
ssh-add -K /path/to/private_key
যদি আপনার ব্যক্তিগত কী ~ / .ssh এ সংরক্ষিত হয় এবং id_rsa নামকরণ করা হয়:
ssh-add -K ~/.ssh/id_rsa
তারপর আপনার পাসওয়ার্ডের জন্য আপনাকে অনুরোধ করা হবে, যা আপনার কীচেইনে সংরক্ষণ করা হবে।
সম্পাদনা - পুনরায় আরম্ভ হ্যান্ডেল
পুনরায় আরম্ভ করার পরেও আপনার পাসওয়ার্ডটি পূরণ করার জন্য আপনার ssh কনফিগারেশন ফাইলে নিম্নলিখিতটি যোগ করুন (সাধারণত ~ / .ssh / config এ অবস্থিত)
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
যদি আপনি git এর জন্য ssh url ব্যবহার করেন, ssh এর পাসওয়ার্ডের জন্য অনুরোধ করা হলে ব্যবহারকারীর নামটি " git " হিসাবে এবং পাসওয়ার্ডটি আপনার সিস্টেমের লগইন পাসওয়ার্ড হিসাবে রাখে
যদি আপনি তৃতীয় পক্ষের সরঞ্জাম ছাড়াই উইন্ডোজ এবং জিআইটি ব্যবহার করেন এবং আপনার কী পাসওয়ার্ড / পাসফ্রেজ দ্বারা সুরক্ষিত না হয় তবে এটি ব্যবহার করুন:
- পরিবেশ পরিবর্তনশীল HOME আপনার ব্যবহারকারীর প্রোফাইলে সেট করা উচিত (উদাহরণস্বরূপ C: \ ব্যবহারকারী \ ল্যাপটপ)
- C: \ Users \ Laptop \ .shsh \ ফোল্ডারে যান এবং "কনফিগারেশন" ফাইলটি সম্পাদনা করুন (অথবা ফাইলটি তৈরি করুন) উদাহরণ: C: \ Users \ Laptop.ssh \ config (নোট: শেষ পর্যন্ত নেই!)
আপনার জিটি-সার্ভার হোস্টটিকে "কনফিগারেশন" ফাইলে যুক্ত করুন যেমন:
#Example host entry Host myhostname.com HostName myhostname.com User git IdentityFile c:/users/laptop/.ssh/id_rsa.pub PasswordAuthentication no Port 422
ফাইলটি সংরক্ষণ করুন এবং এইরকম সংগ্রহস্থল ক্লোন করুন:
গিট ক্লোন ssh: //myhostname.com/git-server/repos/picalc.git
আপনি "কনফিগারেশন" ফাইল হোস্ট এন্ট্রি জন্য অতিরিক্ত কনফিগারেশন পরামিতি ব্যবহার করতে পারেন। এটি আপনার স্থানীয় গিট ইনস্টলেশন ফোল্ডারে পাওয়া যেতে পারে, যেমন " সি: \ প্রোগ্রাম ফাইল \ গিট \ ইত্যাদি \ ssh \ ssh_config "। উদ্ধৃতাংশ:
# Host *
# ForwardAgent no
# ForwardX11 no
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
# Port 22
# Protocol 2
# Cipher 3des
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
# MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h
সমস্যাটি মনে হচ্ছে কারণ আপনি HTTPS থেকে ক্লোন করছেন এবং SSH নয়। আমি এখানে অন্যান্য সব সমাধান চেষ্টা কিন্তু এখনও সমস্যা সম্মুখীন ছিল। এটা আমার জন্য এটা করেছে।
তাই osxkeychain helper
ব্যবহার করে:
আপনি এটি ইনস্টল আছে খুঁজে বের করুন।
git credential-osxkeychain
এটি ইনস্টল না থাকলে, আপনাকে Xcode কমান্ড লাইন সরঞ্জামের অংশ হিসাবে এটি ডাউনলোড করার জন্য উত্সাহিত করা হবে।
যদি এটি ইনস্টল করা থাকে, গ্লোবাল
credential.helper
কনফিগারেশন ব্যবহার করেosxkeychain helper
ব্যবহার করতে Git কে বলুন:git config --global credential.helper osxkeychain
পরের বার যখন আপনি একটি HTTPS url ক্লোন করবেন, তখন আপনাকে ব্যবহারকারীর নাম / পাসওয়ার্ডের জন্য অনুরোধ করা হবে এবং OSX কীচেন অ্যাক্সেস প্রদান করতে হবে। আপনি প্রথমবার এটি করার পরে, এটি আপনার চাবিতে সংরক্ষণ করা উচিত এবং আপনাকে আবার টাইপ করতে হবে না।
সাধারনত, পাসওয়ার্ড ব্যতীত ssh ব্যবহার করে আপনার সার্ভারে রিমোট সংযোগ স্থাপনের জন্য এখানে পদক্ষেপগুলি রয়েছে:
আরএসএ ব্যক্তিগত এবং পাবলিক কী একটি জোড়া তৈরি করুন
$ ssh-keygen -t rsa -b 4096 -C "your comments"
আপনার পাবলিক কী অনুলিপি করুন এবং আপনার দূরবর্তী সার্ভারে লগইন করুন
আপনার পাবলিক কী .ssh / authorized_keys যোগ করুন
আপনার কম্পিউটারে একাধিক ssh কী থাকলে আপনি ssh-add ব্যবহার করে আপনার কী যুক্ত করতে পারেন
$ ssh-add /path/to/private/key
তারপর আপনার সার্ভারের ssh চেষ্টা করুন
$ ssh [email protected]_ip_address
উত্স: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
লিনাক্সমিন্ট / উবুন্টুতে কাজ করা হয়েছে
নিম্নলিখিত ধাপগুলো অনুসরণ করুন
ধাপ 1:
Goto ফাইল => /.ssh/config
ফাইলের মধ্যে নীচের লাইন সংরক্ষণ করুন
Host bitbucket.org
HostName bitbucket.org
User git
IdentityFile /home/apple/myssh-privatekey
AddKeysToAgent yes
এই লাইন AddKeysToAgent যোগ করতে ভুলবেন না
ধাপ ২:
টার্মিনাল খুলুন এবং ssh-add কে কিসেট যোগ করুন
$ ssh-add -k /home/apple/myssh-privatekey
পাসফ্রেজ প্রদান করুন।