কেন ssh এজেন্ট ফরওয়ার্ডিং কাজ করছে না?


57

আমার নিজস্ব কম্পিউটারে, ম্যাকোএসএক্স চলমান, আমার এটি ~ / .ssh / কনফিগারেশনে রয়েছে

Host *
ForwardAgent yes
Host b1
ForwardAgent yes

বি 1 হ'ল একটি ভার্চুয়াল মেশিন যা উবুন্টু 12.04 চলছে। আমি এটির মতো এটি প্রেরণ করছি:

ssh pupeno@b1

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

আমি কী মিস করছি?

এটি দ্বিতীয় ssh এর ভার্বোজ আউটপুট:

pupeno@b1:~$ ssh -v pupeno@b1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to b1 [127.0.1.1] port 22.
debug1: Connection established.
debug1: identity file /home/pupeno/.ssh/id_rsa type -1
debug1: identity file /home/pupeno/.ssh/id_rsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_dsa type -1
debug1: identity file /home/pupeno/.ssh/id_dsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 35:c0:7f:24:43:06:df:a0:bc:a7:34:4b:da:ff:66:eb
debug1: Host 'b1' is known and matches the ECDSA host key.
debug1: Found key in /home/pupeno/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pupeno/.ssh/id_rsa
debug1: Trying private key: /home/pupeno/.ssh/id_dsa
debug1: Trying private key: /home/pupeno/.ssh/id_ecdsa
debug1: Next authentication method: password
pupeno@b1's password:

উত্তর:


94

দেখা যাচ্ছে যে আমার কীটি এজেন্টের মধ্যে ছিল না এবং এটি এটি স্থির করে:

ওএস এক্স :

ssh-add -K

লিনাক্স / ইউনিক্স :

ssh-add -k

আপনি ব্যবহার করে বোঝা কীগুলি তালিকাভুক্ত করতে পারেন:

ssh-add -l

ssh-add -L # for more detail

5
মনে রাখবেন যে, ssh-add -KOS X এর নির্দিষ্ট
রজার Lipscombe

আপনার কি প্রতিটি রিবুট এ করতে হবে?
ক্রাউজার

8
  1. আপনার ./ssh/id_rsa .ssh/id_dsa .ssh/id_ecdsaফাইলগুলির কাছে সঠিক অনুমতি রয়েছে যা আপনার ব্যবহারকারীর মালিকানাধীন এবং 600 কে chmoded করা উচিত কিনা তা পরীক্ষা করে দেখুন ।

  2. আপনার কাছে pupeno/.ssh/authorized_keysবি 1 তে সঠিক পাবলিক কী authorized_keysআছে কিনা তা পরীক্ষা করে দেখুন এবং কীটির শেষে লাইন ব্রেক রয়েছে কিনা তা পরীক্ষা করে দেখুন।

  3. আপনার ssh- এজেন্ট চলমান আছে কিনা তা পরীক্ষা করে দেখুন এর মাধ্যমে কীগুলি লোড করার চেষ্টা করুন ssh-add

  4. GSSAPI- ভিত্তিক প্রমাণীকরণ এবং এর সাথে ফরোয়ার্ড চেষ্টা করুন ssh -K


কীগুলির অনুমতিটি ঠিক আছে এবং অনুমোদিত_ কিসের চাবিটি ঠিক আছে (অন্যথায় আমি মনে করি প্রথম স্থানে সংযোগ করতে আমার সমস্যা হবে)।
pupeno

আপনি ssh- এজেন্ট চলমান ছিল? আপনি যখন ssh-add করেন তখন ssh -A pupeno @ b1 এবং তারপরে ssh pupeno @ b1 করলে কী হবে?
ড্যানিয়েল প্রতা আলমেদা

আপনি কেন ssh-add -K উল্লেখ করার উত্তরটি আপডেট করবেন না এবং আমি আমার পরিবর্তে আপনার গ্রহণ করব (যেহেতু তথ্য প্রায় একই সাথে পোস্ট করা হয়েছিল)।
pupeno

6

Tmp / tmp এ স্থান না থাকায় এসএসডি সার্ভারে এজেন্ট ফরোয়ার্ডিংয়ের অনুরোধ প্রত্যাখ্যান করতে আমার সমস্যা হয়েছিল। এটি ছিল কারণ sshd / tmp ইন সকেট তৈরি করা প্রয়োজন। ক্লিনিং ডিস্ক আপ আমার সমস্যার সমাধান করেছে।

ssh -v তখন বলেছিল:

debug1: Remote: Agent forwarding disabled: mkdtemp() failed: No space left on device

1
আমার একই সমস্যা ছিল, কেবলমাত্র অনুমতিগুলি / টেম্পে ভুল ছিল। ধন্যবাদ !!
nevyn

6

আর একটি সম্ভাব্য কারণ সংযোগ ভাগ করে নেওয়া: এজেন্ট ফরোয়ার্ডিং এবং সংযোগ ভাগ করে নেওয়া সক্ষম না করেই একটি ইতিমধ্যে অন্য হোস্টে লগ ইন হতে পারে। ssh -Aভাগ করা সংযোগের মাধ্যমে দ্বিতীয় লগইন (বা কনফিগারেশনে সমানভাবে উল্লিখিত) চুপচাপ -Aপতাকাটিকে অগ্রাহ্য করবে । সম্পূর্ণ লগ আউট বা দ্বিতীয় লগইনের জন্য সংযোগ ভাগ করে নেওয়া অক্ষম করার পরে, এজেন্ট ফরোয়ার্ডিং কাজ করবে।


2

অন্যান্য গুগল যারা এই প্রশ্নে এসেছিল তাদের সুবিধার জন্য:

একটি। / .Ssh / কনফিগারেশন ফাইলে ভুল শ্বেত স্থান কিছু মাথা আঁচড়ানোর কারণ হতে পারে।

আমি সম্প্রতি আমার সহকর্মীদের একজনকে সাহায্য করেছি যার এই ছিল:

# incorrect
host foobar ForwardAgent yes

এর পরিবর্তে:

# correct
host foobar
  ForwardAgent yes

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


0

.Ssh / config ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করুন Add

  Host **Server_Address**
     ForwardAgent yes

এসএসএইচ এজেন্টে কী যুক্ত করুন

 ssh-add -K

রিমোট সার্ভারে সংযুক্ত করুন

ssh -v **username**@**Server_Address**

গিটহাবের বিরুদ্ধে সংযোগ পরীক্ষা চালান

ssh -T git@github.com

লক্ষ্যযুক্ত গিট সংগ্রহস্থলের বিরুদ্ধে ls রিমোট পরীক্ষা চালান

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