it-swarm.asia

تعذر فتح اتصال بوكيل المصادقة الخاص بك

أنا أواجه هذا الخطأ:

$ git Push heroku master
Warning: Permanently added the RSA Host key for IP address '50.19.85.132' to the list of known hosts.
!  Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.

حاولت إضافة المفاتيح وأحصل على هذا الخطأ أدناه:

$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
1354
Danny Dai Smith

هل بدأت ssh-agent؟

قد تحتاج إلى بدء ssh-agent قبل تشغيل الأمر ssh-add:

eval `ssh-agent -s`
ssh-add

لاحظ أن هذا سيبدأ تشغيل الوكيل لـ msysgit Bash على Windows . إذا كنت تستخدم Shell أو نظام تشغيل مختلفًا ، فقد تحتاج إلى استخدام متغير من الأمر ، مثل تلك المذكورة في الإجابات الأخرى .

انظر الإجابات التالية:

  1. شكوى ssh-add: تعذر فتح اتصال بوكيل المصادقة الخاص بك
  2. يتطلب Git Push اسم المستخدم وكلمة المرور (يحتوي على إرشادات مفصلة حول كيفية استخدام وكيل ssh)
  3. كيفية تشغيل (git/ssh) وكيل المصادقة؟ .
  4. تعذر فتح اتصال بوكيل المصادقة الخاص بك

لبدء تشغيل وكيل ssh تلقائيًا والسماح لمثيل واحد بالعمل في نوافذ وحدة تحكم متعددة ، راجع بدء تشغيل وكيل ssh عند تسجيل الدخول .

لماذا نحتاج إلى استخدام eval بدلاً من ssh-agent فقط؟

لمعرفة السبب ، راجع إجابة Robin Green .

مقابل مفاتيح خاصة العامة

وأيضًا ، كلما استخدمت ssh-add ، أضيف دائمًا مفاتيح خاصة إليها. يبدو الملف ~/.ssh/id_rsa.pub كمفتاح عام ، لست متأكدًا مما إذا كان ذلك سيعمل. هل لديك ملف ~/.ssh/id_rsa؟ إذا قمت بفتحها في محرر نصوص ، فهل هذا يعني أنه مفتاح خاص؟

2057
user456814

حاولت الحلول الأخرى دون جدوى. لقد أجريت المزيد من الأبحاث ووجدت أن الأمر التالي نجح. أنا أستخدم Windows 7 و Git Bash .

eval $(ssh-agent)

مزيد من المعلومات في: https://coderwall.com/p/rdi_wq

490
Victor Alves

عملت الأمر التالي بالنسبة لي. أنا أستخدم CentOS.

exec ssh-agent bash
239
mianjee

MsysGit أو Cygwin

إذا كنت تستخدم Msysgit أو Cygwin ، يمكنك العثور على برنامج تعليمي جيد على SSH-Agent في msysgit و cygwin and bash :

  1. أضف ملفًا يسمى .bashrc إلى مجلد منزلك.

  2. افتح الملف والصقه في:

    #!/bin/bash
    eval `ssh-agent -s`
    ssh-add
    
  3. يفترض هذا أن مفتاحك موجود في موقع ~/.ssh/id_rsa التقليدي. إذا لم يكن كذلك ، فقم بتضمين مسار كامل بعد الأمر ssh-add.

  4. أضف إلى أو أنشئ ملف ~/.ssh/config مع المحتويات

    ForwardAgent yes
    

    في البرنامج التعليمي الأصلي ، ForwardAgent param هو Yes ، لكنه خطأ مطبعي. استخدم كل الحروف الصغيرة أو ستحصل على أخطاء.

  5. أعد تشغيل Msysgit. سيطلب منك إدخال عبارة المرور مرة واحدة ، وهذا كل شيء (حتى تنتهي الجلسة ، أو يقتل وكيلك الأمني).

Mac/OS X

إذا كنت لا ترغب في بدء وكيل ssh جديد في كل مرة تفتح فيها محطة ، فراجع Keychain . أنا الآن في نظام التشغيل Mac ، لذلك استخدمت البرنامج التعليمي {ssh-agent مع zsh & keychain في نظام التشغيل Mac OS X لإعداده ، لكنني متأكد من أن بحث Google سيحتوي على الكثير من المعلومات لنظام التشغيل Windows.

تحديث : الحل الأفضل على Mac هو إضافة مفتاحك إلى Mac OS Keychain:

ssh-add -K ~/.ssh/id_rsa

سهل هكذا.

199
RobW

تعذر فتح اتصال بوكيل المصادقة الخاص بك

لحل هذا الخطأ:

سحق:

$ eval `ssh-agent -s`

إلى tcsh:

$ eval `ssh-agent -c`

ثم استخدم ssh-add كما تفعل عادةً.


نصيحة سريعة:

كنت دائمًا ما أنسى ما اكتبه لأوامر وكيل ssh الموضحة أعلاه ، لذلك قمت بإنشاء اسم مستعار في ملف .bashrc الخاص بي مثل هذا:

alias ssh-agent-cyg='eval `ssh-agent -s`'

الآن بدلاً من استخدام ssh-agent ، يمكنني استخدام ssh-agent-cyg

مثلا.

$ ssh-agent-cyg
SSH_AUTH_SOCK=/tmp/ssh-n16KsxjuTMiM/agent.32394; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32395; export SSH_AGENT_PID;
echo Agent pid 32395;
$ ssh-add ~/.ssh/my_pk

المصدر الأصلي للإصلاح:

http://cygwin.com/ml/cygwin/2011-10/msg00313.html

190
Chris Snow

واجهت نفس المشكلة لنظام التشغيل Linux ، وهذا ما فعلته:

في الأساس ، يقوم الأمر ssh-agent ببدء تشغيل العامل ، لكنه لا يقوم بالفعل بتعيين متغيرات البيئة لتشغيله. انها مجرد إخراج هذه المتغيرات إلى شل.

أنت بحاجه إلى:

eval `ssh-agent`

ثم قم بإضافة ssh. راجعتعذر فتح اتصال بوكيل المصادقة الخاص بك.

114
n3o

تتطلب ssh-add و ssh (على افتراض أنك تستخدم تطبيقات opensh) متغير بيئة لمعرفة كيفية التحدث إلى وكيل ssh. إذا قمت بتشغيل العامل في نافذة موجه أوامر مختلفة على النافذة التي تستخدمها الآن ، أو إذا قمت بتشغيلها بشكل غير صحيح ، فلن ترى ssh-add أو ssh مجموعة متغير البيئة (لأن متغير البيئة تم تعيينه محليًا للأمر موجه تم تعيينه في).

لا يمكنك تحديد أي إصدار من ssh تستخدمه ، ولكن إذا كنت تستخدم cygwin ، يمكنك استخدام هذه الوصفة من SSH Agent على Cygwin :

# Add to your Bash config file
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
    eval `$SSHAGENT $SSHAGENTARGS`
    trap "kill $SSH_AGENT_PID" 0
fi

سيؤدي هذا إلى بدء تشغيل وكيل تلقائيًا لكل نافذة موجه الأوامر الجديدة التي تفتحها (والتي تعد دون المستوى الأمثل إذا قمت بفتح موجه أوامر متعددة في جلسة واحدة ، ولكن يجب أن تعمل على الأقل).

104
Robin Green

حاول اتباع الخطوات التالية:

1) افتح Git Bash وقم بتشغيل: cd ~/.ssh

2) حاول تشغيل الوكيل: eval $(ssh-agent)

3) الآن ، يمكنك تشغيل الأمر التالي: ssh-add -l

93
ChechoroArtem

بدلاً من استخدام $ ssh-agent -s ، استخدمت $ eval `ssh-agent -s` لحل هذه المشكلة.

إليكم ما قمت به خطوة بخطوة (الخطوة 2 فصاعدا على GitBash):

  1. تنظيف مجلد .ssh الخاص بي في C:\user\<username>\.ssh\
  2. إنشاء مفتاح SSH جديد
    $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. تحقق مما إذا كان معرف العملية (وكيل ssh) قيد التشغيل بالفعل.
    $ ps aux | grep ssh
  4. (اختياري) إذا وجدت أيًا في الخطوة 3 ، فقتل هؤلاء
    $ kill <pids>
  5. بدأت وكيل سه
    $ eval `ssh-agent -s`
  6. وأضاف مفتاح سه ولدت في الخطوة 2 إلى وكيل سه
    $ ssh-add ~/.ssh/id_rsa
69
vinsinraw

في نظام التشغيل Windows 10 ، جربت جميع الإجابات المدرجة هنا ولكن يبدو أن أيا منها لا يعمل. في الواقع أنها تعطي فكرة. لحل مشكلة ببساطة تحتاج 3 أوامر. فكرة هذه المشكلة هي أن ssh-add تحتاج إلى تعيين متغيرات البيئة SSH_AUTH_SOCK و SSH_AGENT_PID مع مسار ملف جورب ssh-agent الحالي ورقم معرف المنتج.

ssh-agent -s > temp.txt

هذا سيوفر إخراج وكيل ssh في الملف. سيكون محتوى الملف النصي مثل هذا:

SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3044; export SSH_AGENT_PID;
echo Agent pid 3044;

قم بنسخ شيء مثل "/tmp/ssh-kjmxRb2764/agent.2764" من ملف نصي وتشغيل الأمر التالي مباشرة في وحدة التحكم:

set SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764

قم بنسخ شيء مثل "3044" من ملف نصي وتشغيل الأمر التالي مباشرة في وحدة التحكم:

set SSH_AGENT_PID=3044

الآن عندما يتم تعيين متغيرات البيئة (SSH_AUTH_SOCK و SSH_AGENT_PID) لجلسة وحدة التحكم الحالية ، قم بتشغيل الأمر ssh-add ولن يفشل مرة أخرى في توصيل وكيل ssh.

50
BIOHAZARD

شيء واحد صادفته هو أن eval لم ينجح بالنسبة لي باستخدام Cygwin ، ما كان يعمل بالنسبة لي كان ssh-agent ssh-add id_rsa.

بعد ذلك ، واجهت مشكلة مفادها أن مفتاحي الخاص كان مفتوحًا للغاية ، والحل الذي تمكنت من العثور عليه (من هنا ):

chgrp Users id_rsa

طالما

chmod 600 id_rsa

أخيرا تمكنت من استخدام:

ssh-agent ssh-add id_rsa
29
Vnge

لتضخيم إجابة n3o لنظام التشغيل Windows 7 ...

كانت مشكلتي في الواقع أن بعض متغيرات البيئة المطلوبة لم يتم ضبطها ، وصحيح n3o أن يخبرك ssh-agent بكيفية ضبط متغيرات البيئة هذه ، ولكن لا يقوم بتعيينها بالفعل.

نظرًا لأن Windows لا يتيح لك القيام بـ "eval" ، إليك ما يجب القيام به بدلاً من ذلك:

إعادة توجيه إخراج وكيل ssh إلى ملف دفعي مع

ssh-agent > temp.bat

الآن استخدم محرر نصوص مثل المفكرة لتحرير temp.bat. لكل سطر من السطرين الأولين: - أدخل كلمة "مجموعة" ومسافة في بداية السطر. - احذف الفاصلة المنقوطة الأولى وكل ما يلي.

الآن احذف السطر الثالث. يجب أن تبدو temp.bat لديك مثل هذا:

set SSH_AUTH_SOCK=/tmp/ssh-EorQv10636/agent.10636
set SSH_AGENT_PID=8608

تشغيل temp.bat. سيؤدي ذلك إلى تعيين متغيرات البيئة اللازمة للعمل لإضافة ssh.

26
Steve Saporta

يركض

ssh-agent bash
ssh-add

للحصول على مزيد من التفاصيل ، يمكنك البحث

ssh-agent

أو تشغيل

man ssh-agent
25
bp zhang

أنا فقط حصلت على هذا العمل. افتح ملفك ~/.ssh/config.

إلحاق ما يلي-

Host github.com
 IdentityFile ~/.ssh/github_rsa

قالت الصفحة التي أعطتني تلميح إعداد SSH لـ Git أن المسافة البادئة للمسافة الواحدة مهمة ... على الرغم من أن لدي تكوين هنا من Heroku لم يكن لديه تلك المساحة ويعمل بشكل صحيح.

17
Paul Becotte

إذا اتبعت هذه الإرشادات ، فسيتم حل مشكلتك.

إذا كنت تستخدم جهاز Mac أو Linux ، فاكتب:

eval "$(ssh-agent -s)"

إذا كنت تستخدم جهازًا يعمل بنظام Windows ، فاكتب:

ssh-agent -s
15
Fahim Boron

ملاحظة:هذه إجابة على هذا السؤال الذي تم دمجه مع هذا السؤال. كان هذا السؤال لنظام التشغيل Windows 7 ، مما يعني أن إجابتي كانت لـ Cygwin/MSYS/MSYS2. هذا يبدو لبعض يونيكس ، حيث لا أتوقع وكيل SSH بحاجة إلى إدارة مثل هذا.

سيؤدي ذلك إلى تشغيل وكيل SSH والمصادقة فقط في المرة الأولى التي تحتاج إليها} ، وليس في كل مرة تفتح فيها محطة Bash. يمكن استخدامه لأي برنامج يستخدم SSH بشكل عام ، بما في ذلك ssh نفسه و scp. فقط أضف هذا إلى /etc/profile.d/ssh-helper.sh:

ssh-auth() {
    # Start the SSH agent only if not running
    [[ -z $(ps | grep ssh-agent) ]] && echo $(ssh-agent) > /tmp/ssh-agent-data.sh

    # Identify the running SSH agent
    [[ -z $SSH_AGENT_PID ]] && source /tmp/ssh-agent-data.sh > /dev/null

    # Authenticate (change key path or make a symlink if needed)
    [[ -z $(ssh-add -l | grep "/home/$(whoami)/.ssh/id_rsa") ]] && ssh-add
}

# You can repeat this for other commands using SSH
git() { ssh-auth; command git "[email protected]"; }
12
Renato Silva

اسمحوا لي أن أقدم حل آخر. إذا كنت قد قمت للتو بتثبيت Git 1.8.2.2 أو ما يقرب من ذلك ، وكنت ترغب في تمكين SSH ، فاتبع النص الكامل الاتجاهات .

كل شيء حتى الخطوة 5.6 حيث قد تواجه عقبة طفيفة. إذا كان هناك عامل SSH قيد التشغيل بالفعل ، فقد تحصل على رسالة الخطأ التالية عند إعادة تشغيل bash

Could not open a connection to your authentication agent

إذا قمت بذلك ، استخدم الأمر التالي لمعرفة ما إذا كان يتم تشغيل أكثر من عملية ssh-agent

ps aux | grep ssh

إذا رأيت أكثر من خدمة ssh-agent ، فستحتاج إلى قتل كل هذه العمليات. استخدم الأمر kill كما يلي (سيكون معرف المنتج فريدًا على جهاز الكمبيوتر الخاص بك)

kill <PID>

مثال:

kill 1074

بعد أن قمت بإزالة كافة عمليات ssh-agent ، قم بتشغيل بكسل aux | grep ssh أمر مرة أخرى للتأكد من أنهم ذهبوا ، ثم أعد تشغيل Bash.

فويلا ، يجب أن تحصل الآن على شيء مثل هذا:

Initializing new SSH agent...
succeeded
Enter passphrase for /c/Users/username/.ssh/id_rsa:

يمكنك الآن المتابعة في الخطوة 5.7 وما بعدها.

11
Rick

استخدم المعلمة -A عند الاتصال بالخادم ، على سبيل المثال:

ssh -A [email protected]

من صفحة الرجل:

-A Enables forwarding of the authentication agent connection.  
   This can also be specified on a per-Host basis in a configuration file.

   Agent forwarding should be enabled with caution.  Users with the ability to bypass file permissions on the remote Host (for the agent's
   UNIX-domain socket) can access the local agent through the forwarded 
   connection.  An attacker cannot obtain key material from the agent,
   however they can perform operations on the keys that enable them to
   authenticate using the identities loaded into the agent.
8
Lebnik

يتم الرد على الحل الأساسي للتشغيل ssh-agent في العديد من الإجابات. ومع ذلك ، فإن تشغيل ssh-agent عدة مرات (لكل محطة مفتوحة أو لكل تسجيل دخول عن بعد) سيخلق العديد من النسخ ssh-agent تعمل في الذاكرة. البرامج النصية المقترحة لتجنب هذه المشكلة طويلة وتحتاج إلى كتابة و/أو نسخ ملف منفصل أو تحتاج إلى كتابة العديد من السلاسل في ~/.profile أو ~/.schrc. اسمحوا لي أن أقترح حل بسيط من سلسلتين:

لـ sh ، bash ، إلخ:

# ~/.profile
if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi
. ~/.ssh-agent.sh

لـ csh ، tcsh ، إلخ:

# ~/.schrc
sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'
eval `cat ~/.ssh-agent.tcsh`

ما هو هنا:

  • ابحث في العملية ssh-agent بالاسم والمستخدم الحالي
  • قم بإنشاء ملف شل النصي المناسب عن طريق الاتصال بـ ssh-agent وتشغيل ssh-agent بنفسه إذا لم يعثر على أي مستخدم حالي ssh-agent
  • تقييم إنشاء شل النصي الذي تكوين البيئة المناسبة

ليس من الضروري حماية البرنامج النصي الذي تم إنشاؤه في Shell ~/.ssh-agent.tcsh أو ~/.ssh-agent.sh من وصول مستخدمين آخرين لأنه: تتم معالجة الاتصال في البداية مع ssh-agent من خلال مأخذ توصيل محمي لا يمكن لمستخدمين آخرين الوصول إليه ، ويمكن للمستخدمين الآخرين في الثانية العثور على مأخذ توصيل بسيط ssh-agent الملفات في دليل /tmp/. بقدر ما يتعلق بالوصول إلى عملية ssh-agent ، فهي نفس الأشياء.

7
oklas

حاول القيام بما يلي:

ssh-agent sh -c 'ssh-add && git Push heroku master'
5
kenorb

قراءة @ الإجابة كب كيك للحصول على تفسيرات. أنا هنا أحاول فقط لأتمتة الإصلاح.

إذا كنت تستخدم Cygwin terminal مع BASH ، أضف ما يلي إلى ملف $ HOME/.bashrc. هذا فقط يبدأ ssh-agent مرة واحدة في محطة Bash الأولى ويضيف المفاتيح إلى ssh-agent. (لست متأكدًا مما إذا كان هذا مطلوبًا على نظام Linux)

###########################
# start ssh-agent for
# ssh authentication with github.com
###########################
SSH_AUTH_SOCK_FILE=/tmp/SSH_AUTH_SOCK.sh
if [ ! -e $SSH_AUTH_SOCK_FILE ]; then
    # need to find SSH_AUTH_SOCK again.
    # restarting is an easy option
    pkill ssh-agent
fi
# check if already running
SSH_AGENT_PID=`pgrep ssh-agent`
if [ "x$SSH_AGENT_PID" == "x" ]; then
#   echo "not running. starting"
    eval $(ssh-agent -s) > /dev/null
    rm -f $SSH_AUTH_SOCK_FILE
    echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" > $SSH_AUTH_SOCK_FILE
    ssh-add $HOME/.ssh/github.com_id_rsa 2>&1 > /dev/null
#else
#   echo "already running"
fi
source $SSH_AUTH_SOCK_FILE

لا تنس أن تضيف مفاتيحك الصحيحة في أمر "ssh-add".

5
Kiran Mohan

كان لدي هذه المشكلة ، عندما بدأت وكيل ssh ، عندما كان يعمل بالفعل. يحصل الخلط. لمعرفة ما إذا كانت هذه هي الحالة ، استخدم

eval $(ssh-agent)

لمعرفة ما إذا كان هذا هو نفس ما كنت تعتقد أنه ينبغي أن يكون. في حالتي ، كان الأمر مختلفًا عن الذي بدأت للتو.

لمزيد من التحقق إذا كان لديك أكثر من وكيل ssh قيد التشغيل ، يمكنك مراجعة:

ps -ef | grep ssh
4
Jahmic

واجهت نفس المشكلة في Ubuntu ولم تساعدني الحلول الأخرى. أدركت أخيرًا ما كانت مشكلتي. لقد أنشأت مفاتيح ssh الخاصة بي في مجلد /root/.ssh ، لذلك حتى عندما ركضت ssh-add كجذر ، لم تستطع القيام بعملها واستمرار قولها

Could not open a connection to your authentication agent.

لقد أنشأت مفاتيح ssh العامة والخاصة في مجلد /home/myUsername/ وكنت أستخدمها

ssh-agent /bin/sh

ثم ركضت

ssh-add /home/myUsername/.ssh/id_rsa

وتم حل المشكلة بهذه الطريقة.

ملاحظة: للوصول إلى مستودعك على git ، أضف كلمة مرور git عندما تقوم بإنشاء مفاتيح ssh مع ssh-keygen -t rsa -C "your git email here".

4
Merka

واجهت مشكلة مماثلة عندما كنت أحاول الحصول على هذا للعمل على Windows للاتصال بخبأ عبر ssh

هنا هو الحل الذي يعمل بالنسبة لي.

  1. اتضح أنني كنت أقوم بتشغيل وكيل Pageant ssh على صندوق ويندوز الخاص بي - سوف أتحقق مما تقوم بتشغيله. أظن أنها مسابقة لأنها تأتي بشكل افتراضي مع PuTTY و winScp

  2. لا تعمل ssh-add من سطر الأوامر مع هذا النوع من العوامل

  3. تحتاج إلى إضافة المفتاح الخاص عبر نافذة UI pageant والتي يمكنك الحصول عليها من خلال النقر فوق أيقونة Pageant في شريط المهام (بمجرد بدء تشغيلها).

  4. قبل إضافة المفتاح إلى Pageant ، تحتاج إلى تحويله إلى تنسيق PPK. تتوفر التعليمات الكاملة هنا كيفية تحويل مفتاح SSH إلى تنسيق ppk

  5. هذا هو. بمجرد تحميل المفتاح الخاص بي على stash ، تمكنت من استخدام SourceTree لإنشاء ريبو محلي واستنساخ جهاز التحكم عن بُعد.

أتمنى أن يساعدك هذا...

4
Moonwalker

بالنسبة إلى bash المضمنة في نظام التشغيل Windows 10 ، أضفت هذا إلى .bash_profile:

if [ -z $SSH_AUTH_SOCK ]; then
    if [ -r ~/.ssh/env ]; then
            source ~/.ssh/env
            if [ `ps -p $SSH_AGENT_PID | wc -l` = 1 ]; then
                    rm ~/.ssh/env
                    unset SSH_AUTH_SOCK
            fi
    fi
fi

if [ -z $SSH_AUTH_SOCK ]; then
    ssh-agent -s | sed 's/^echo/#echo/'> ~/.ssh/env
    chmod 600 ~/.ssh/env
    source ~/.ssh/env > /dev/null 2>&1
fi
3
Kip

هذا عملت بالنسبة لي.

في نافذة CMD ، اكتب الأمر التالي:

cd path-to-Git/bin # (for example,cd C:\Program Files\Git\bin)
bash
exec ssh-agent bash
ssh-add path/to/.ssh/id_rsa
3
kecco

لقد قمت بحل الخطأ عن طريق إيقاف تشغيل (قتل) عمليات git (عامل ssh) ، ثم إلغاء تثبيت Git ، ثم تثبيت Git مرة أخرى.

3
Devendra Singh

إذا كنت تستخدم PuTTY ، فربما تحتاج إلى تعيين الخيار "Connection/SSH/Auth/Allow agent forwarding" إلى "true".

enter image description here

3
Vladius

باستخدام Git Bash على Win8.1E ، كان قراري كما يلي:

eval $(ssh-agent) > /dev/null
ssh-add ~/.ssh/id_rsa
2
SrBlanco

ل PowerShell في ويندوز

كنت أواجه مشكلة مع PoSH وأوامر Start-SshAgent/Add-SshKey ، لذلك قمت بنسخ نص سريع قد يساعد بعض الأشخاص. هذا مخصص لإضافته إلى ملف تعريف PowerShell الخاص بك والذي يمكنك تعديله عن طريق تنفيذ notepad $PROFILE

if ($(Get-Process ssh-agent) -eq $null)
{
    $ExecutionContext.InvokeCommand.ExpandString($(ssh-agent -c).Replace("setenv", "set"));
}

سوف يكتشف ما إذا كان ssh-agent يعمل أم لا وسيتم تنفيذه فقط إذا لم يكن هناك وكيل يعمل بالفعل. يرجى ملاحظة أن $ExecutionContext.InvokeCommand.ExpandString أمر خطير جدًا ، لذا قد لا ترغب في استخدام هذا الحل إذا كنت تستخدم نسخة غير موثوق بها من ssh-agent.

2
Jonathan DeMarks

تحقق أيضًا من عنوان url البعيد. استخدم git @ github ... بدلاً من https: // proptocol

راجع https://stackoverflow.com/a/33928364/551811

2
BraveNewMath

إليك الحل الذي توصلت إليه عند استخدام PowerShell.

أضف الوظيفة أدناه إلى Microsoft.PowerShell_profile.ps1

function RunSsh($userIdentity ) {
   $agent=ssh-agent
   $position=$agent[0].IndexOf("=")
   $ending=$agent[0].IndexOf(";")

   $variableStartPosition=$agent[0].IndexOf("export")
   $variableEndPosition=$agent[0].LastIndexOf(";")
   $variableName=$agent[0].Substring($variableStartPosition+7,$variableEndPosition-$variableStartPosition-7)
   [Environment]::SetEnvironmentVariable($variableName, $agent[0].Substring($position+1,$ending-$position-1))

   $position=$agent[1].IndexOf("=")
   $ending=$agent[1].IndexOf(";")

   $variableStartPosition=$agent[1].IndexOf("export")
   $variableEndPosition=$agent[1].LastIndexOf(";")
   $variableName=$agent[1].Substring($variableStartPosition+7,$variableEndPosition-$variableStartPosition-7)
   [Environment]::SetEnvironmentVariable($variableName, $agent[1].Substring($position+1,$ending-$position-1))

   if($userIdentity.Length -eq 0) {
      ssh-add
   } else {
      ssh-add $userIdentity
   }
}

الآن من سطر الأوامر ، يمكنك تشغيل RunSsh الذي يستخدم ملف الهوية في مجلد ~\.ssh أو تمرير ملف الهوية باستخدام RunSsh C:\ssh\id_rsa حيث C:\ssh\id_rsa هو ملف هويتك.

لكي تعمل ، يجب أن يكون لديك ssh-add و ssh-agent في متغير البيئة path.

1
null_pointer

بالنسبة لمستخدمي النوافذ ، وجدت أن cmd "eval ssh-agent -s" لا يعمل ، ولكن استخدام git bash قد عالج "eval ssh-agent -s؛ ssh-add KEY_LOCATION" ، والتأكد من عدم تعطيل خدمة windows "إدارة مفتاح OpenSSH"

0
aqm

حتى كنت أتلقى "تعذر فتح اتصال بوكيل المصادقة الخاص بك." على تشغيل الأمر أثناء إنشاء وإضافة مفتاح SSH: ssh-add ~/.ssh/id_rsa. لقد قمت بحلها عن طريق إيقاف مثيلات ssh-agent المتعددة التي تعمل على الجهاز الخاص بي ، ثم قمت بإلغاء تثبيت Git من لوحة التحكم على جهاز windows الخاص بي ، ثم قمت مرة أخرى بتثبيت Git وكانت الأمور تعمل الآن.

0
Devendra Singh

في حالتي ، قام Comodo firewall بوضع صندوق الحماية على عامل الحماية. بمجرد قيامي بتعطيل وضع الحماية ، تمكنت من استنساخ المستودع.

لمعلوماتك ، أنا أستخدم جدار الحماية كمودو على ويندوز 7.

0
neoramos