Vscode: Git: دعم git بكلمة مرور المفتاح الخاص

تم إنشاؤها على ١٣ أكتوبر ٢٠١٦  ·  229تعليقات  ·  مصدر: microsoft/vscode

  • إصدار VSCode: 1.6.0
  • قم بتنفيذ e52fb0bc87e6f5c8f144e172639891d8d8c9aa55
  • تاريخ 2016-10-10T18: 37: 40.189Z
  • شل 1.3.7
  • العارض 52.0.2743.82
  • العقدة 6.5.0
  • إصدار نظام التشغيل: Windows 7 Pro

خطوات الاستنساخ:

  1. إنشاء زوج مفاتيح عام-خاص مع حماية كلمة المرور
  2. قم بإضافتها إلى حساب جيثب الخاص بك
  3. git الإعداد لاستخدام ملف المفتاح الخاص
  4. حاول دفع شيء ما باستخدام git

نتيجة:

git pull
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
feature-request git help wanted

التعليق الأكثر فائدة

حل بديل لنظام التشغيل Windows 10:

  1. اجعل Git يستخدم OpenSSH الذي يأتي مع Windows بدلاً من الذي يأتي مع Git.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. قم بتعيين خدمة وكيل ssh (وليس تلك التي تأتي مع git) للتشغيل تلقائيًا.
    افتح إدارة المهام ، علامة التبويب الخدمات ، انقر فوق فتح الخدمات.
    ابحث عن وكيل مصادقة OpenSSH ، وافتح الخصائص ، واضبط نوع بدء التشغيل على تلقائي ، واضغط على موافق.
    ابدأ أيضًا الخدمة أو أعد تشغيل الكمبيوتر.
  3. أضف المفتاح المحمي بكلمة المرور إلى الوكيل.
    ssh-add
    يجب أن يلتقط تلقائيًا المفاتيح المخزنة في C: \ Users \٪ USERNAME٪ \. ssh حيث يقوم ssh-keygen بإنشائها.
    أدخل كلمة المرور الخاصة بك في الموجه.

ملاحظة: إذا قمت ، عند تثبيت Git لنظام التشغيل Windows ، بتحديد خيار إضافة أوامر bash إلى PATH ، فقد يشير الأمر ssh-add إلى الملف القابل للتنفيذ الخطأ. إذا كان الأمر كذلك ، يمكنك تشغيل المفتاح المضمن يدويًا لإضافة مفتاحك إلى الوكيل:
C:\Windows\System32\OpenSSH\ssh-add.exe

الآن سيتم تشغيل وكيل مصادقة OpenSSH المدمج عند بدء التشغيل مع إلغاء قفل المفتاح المحمي بكلمة مرور ، وسيستخدم Git Windows OpenSSH بدلاً من مفتاحه الخاص. لذلك لا داعي لكتابة كلمة المرور الخاصة بك في كل مرة ، ولا داعي لبدء تشغيل وكيل ssh يدويًا ، ولا حاجة لبدء VS Code من سطر الأوامر.

ال 229 كومينتر

هل يعمل من سطر الأوامر؟ كيف تقوم بالضبط بإعداد git لاستخدام ملف المفتاح الخاص؟

يعمل من سطر الأوامر. في الواقع ، أقوم بإعداد git عبر بوابة السلحفاة - لذلك أعتقد أن كل شيء يتم بشكل صحيح.

image

كيف تقوم بتشغيل سطر الأوامر؟ أي سطر أوامر؟

أستخدم git bash (MINGW64) على الويندوز.

حق. لذلك ، قد نضطر إلى إضافة إعداد git.sshkey أيضًا ، مثل Tortoise.

مع Windows 10 ، Git 2.10.1.

واجهت مشاكل في استخدام git على vscode مع خادم الإنتاج الخاص بي ، لذلك قمت بإنشاء خادم اختبار.
في البداية ، مع مستخدم محمي بكلمة مرور (بدون مفاتيح) ، نفس الأخطاء - لا توجد نوافذ منبثقة لمطالبة الاعتماد أو أي شيء.
باستخدام الجهاز داخل vscode أو أي cmd عشوائي يمكنني الدفع والسحب وهو يعمل - يطلب كلمة المرور. مع vscode يمكنني فقط تحضير الالتزامات. تفشل عمليات السحب والدفع والمزامنة لأنها لا تطلب كلمة المرور.

في الإنتاج ، أستخدم مفتاحًا محميًا بعبارة مرور مع منفذ مختلف مكون من 5 أرقام لـ ssh.
لدي أيضًا بعض مفاتيح ssh المختلفة (بما في ذلك git) على جهاز واحد ...

joaomoreno لماذا نقلته إلى الأعمال المتأخرة؟

مجرد تخطيط الأولويات. يمكنك محاولة طلب سحب رغم ذلك. 👍

في انتظار ذلك 😉

أي تحديث على هذا؟ أواجه نفس المشكلة وهي مزعجة جدًا 😞

joaomoreno أنا آخذ طعنة في هذا. إنه يؤثر علي شخصيًا الآن حيث انتقلت مؤخرًا إلى الأمان المستند إلى المفاتيح.

يمكن للناس تتبع تقدمي هنا .

hashhar هذا رائع! 🍻 أخبرني إذا اصطدمت ببعض الجدران.

joaomoreno كنت أبحث في الأماكن التي تحتاج إلى التغيير ووجدت ما يلي:

السيناريو الحالي:

  • إذا كان لديك وكيل ssh يعمل مع إضافة المفتاح إليه ، فيمكنك إجراء جميع العمليات باستثناء clone (لأن node.url.parse () لا يعمل مع عناوين url الخاصة بـ ssh).
  • إذا لم يكن وكيل ssh يقوم بتشغيل جميع أوامر git التي تتضمن نشاط الشبكة (الجلب ، النسخ ، الدفع ، السحب) تفشل. تم إنشاء الخطأ بواسطة git.exe.

التغييرات المقترحة:

  • [x] غير مطلوب ، راجع التعليق التالي أضف زيادة التحميل إلى url.parse () (أين؟) للتأكد من التعرف على عناوين url ssh أيضًا.
  • [x] أضف مفتاح تهيئة ، git.sshkey (موقع المفتاح الخاص (يقتصر على مفاتيح openssh في الوقت الحالي - لأن git يدعم ذلك في الأصل ، وسوف ينظر في مفاتيح المعجون لاحقًا)).
  • [] أضف ملحقًا شرطيًا حيث يتم تهيئة امتداد git لبدء وكيل SSH (إذا لم يكن أحدهما قيد التشغيل) وأضف المفتاح. سوف تحتاج إلى (Quickpick) بطريقة ما أن تطلب من المستخدم إدخال عبارة المرور الخاصة به. ( هل نقتل الوكيل عندما نغلق vscode؟ )

لن تكون هناك تغييرات أخرى ضرورية (مما رأيته حاليًا) لأن الاتصال بنقطة نهاية git تتم معالجته بواسطة git.exe وليس بواسطة vscode.

حسنًا ، سيئتي بشأن تحليل عنوان url. يبدو أن العقدة تقبل عناوين url مثل git+ssh://[email protected]:hashhar/vscode أو ssh://[email protected]:hashhar/vscode ولكن يجب ذكر الجزء ssh صراحة.

ما الذي يجب أن أفعله حيال ذلك ، يجب أن تقوم vscode بطريقة سحرية بإرفاق ssh قبل عناوين url التي تطابق تنسيق [email protected]:username/repo . أم تفشل بصمت؟ (لا يزال هذا يحتاج إلى تشغيل وكيل ssh).

بينغjoaomoreno. إذا كان بإمكانك إيجاد الوقت ، فقم بالتعليق على المشكلات المذكورة أعلاه لدي. لقد اخترقت حاليًا دليلًا للمفهوم من خلال بدء وكيل ssh ضد مفتاح خاص. إنه يعمل ولكن لا تزال هناك حاجة إلى بعض التلميع.

hashhar آسف للتأخير ... أنا مشغول جدًا في الوقت الحالي. لا تتردد في إنشاء العلاقات العامة ونقل المناقشة إلى هناك ، وسنحاول الحصول عليها لشهر مارس.

لا يكفي مجرد بدء وكيل ssh ، فأنت بحاجة أيضًا إلى إضافة متغيرات البيئة SSH_AGENT_PID و SSH_AUTH_SOCK حتى يعرف Git مكان البحث.

ستحتاج بعد ذلك إما إلى تخزين هذا في مكان ما ، بحيث يمكن استخدامه بين عمليات إعادة تشغيل VSCode ، أو ستحتاج إلى إعادة تشغيل وكيل ssh في كل مرة تقوم فيها بإعادة تشغيل VS Code.

سيكون من الرائع مشاركة هذا مع Posh-Git (وحدة Powershell Git) ، التي تخزن القيم في ([System.IO.Path]::GetTempPath()) ".ssh\$key.env" - ولكن ربما يستحق التحدث إلى هذا الفريق للتأكد من أن هذا الموقع هو شيء هم يسعدني أن تكون مقفلًا عليه.

andrewducker شكرًا جزيلاً على المدخلات الإضافية. لم أعمل على هذا بالسرعة التي أرغب بها بسبب منتصف الفصل الدراسي. سأعود إليه بنهاية الأسبوع. سأخبر فريق Posh-Git.

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

هل هناك جزء من الكود يتم استدعاؤه كلما تم إجراء مكالمة Git؟ إذا كان الأمر كذلك ، فيمكنك طلب كلمة المرور في المرة الأولى التي يتم الاتصال بها.

عند النظر إليه ، فإن وضع خطاف في Git.ts سيكون هو السبيل للذهاب ، بالداخل حول أي وظائف قد تعني الاتصال بالخادم. (مثل الجلب ، والسحب ، والدفع ، إلخ).

(أعرض أن أفعل ذلك بنفسي ، لكني لم أكتب أي شيء في TypeScript ، أو أعمل مع امتدادات VSCode ، لذلك هذا يعتمد فقط على عملي في البحث لفترة وجيزة في الكود على GitHub.)

أكبر مشكلة هي أنه على نظام التشغيل Windows ، قد تكون متغيرات SSH_AUTH_SOCK و SSH_AUTH_PID متاحة لجميع العمليات أو مجرد جلسة وحدة تحكم واحدة اعتمادًا على كيفية بدء وكيل ssh. لذلك من الأسهل بكثير بدء وكيل ssh من داخل VSCode بدلاً من إعادة استخدام تلك الموجودة (على الأقل على Windows).

من الناحية العملية ، يعني هذا أنه سيتعين على المستخدم تقديم عبارة المرور الخاصة به مرة واحدة قبل إجراء عملية Git الأولى. يمكن لمثيلات VSCode مشاركة وكلاء ssh فيما بينهم إذا تمكنا من تحديد مكان مشفر حيث سيتم إنشاء SSH_AUTH_SOCK بحيث يمكن لمثيلات VSCode الأخرى الاطلاع عليها قبل بدء وكلائها.

لقد تبين أن هذا يمثل تحديًا مثيرًا للاهتمام بالنسبة لي. 😃

سيكون أيضًا خيارًا قابلاً للتطبيق إذا كان vscode سيحترم SSH_AUTH_SOCK الموجود بالفعل. تتم سؤالي عن كلمة المرور الخاصة بالمفتاح الخاص على الرغم من أن وكيل ssh يعمل بالفعل على نظامي. ومن المثير للاهتمام أنني يمكنني استخدام git داخل محطة vscode المتكاملة (shell). يجب أن يتصرف المكوِّن الإضافي git والمحطة الطرفية بالطريقة نفسها لتسهيل تصحيح الأخطاء.

تحرير: أنا على الالتزام f9d0c687ff2ea7aabd85fb9a43129117c0ecf519
EDIT2: يعمل عندما أقوم بتشغيل vscode من bash بدلاً من استخدام مشغل مدير النوافذ الخاص بي.

نعم - بدء تشغيل VSCode من جلسة تم تعيينها بالفعل في البيئة يعمل بشكل مثالي (الإطلاق من Powershell في حالتي). لذلك إذا تم ضبطهما بالفعل ، فلا يوجد شيء للقيام به.

أي تقدم في هذا؟

تضمين التغريدة أنا آسف. لم أتمكن من تخصيص الوقت الكافي لها بسبب الكلية. شكرا لتذكيري بالمناسبة. سأحاول إنجاز بعض الأعمال في الأسبوع القادم.

مرحبا بالجميع ،

للأسف لدي نفس النوع من المشكلة ... 😭
هنا هو التكوين الخاص بي والسيناريو التفصيلي لإعادة إنتاجه.
آمل أن يساعد ذلك قليلاً!

نظام التشغيل : macOSX Sierra الإصدار 10.24.4
VScode : الإصدار 1.11.1

في مجلد ssh الخاص بي ، لدي هذه الملفات:

  • التكوين
  • id_rsa_github
  • id_rsa_github.pub
  • id_rsa_gitlab
  • id_rsa_gitlab.pub
  • know_hosts

محتوى ملف التكوين :

Host gitlab.com
  HostName gitlab.com
  User git
  RSAAuthentication yes
  IdentityFile ~/.ssh/id_rsa_gitlab

Host github.com
  HostName github.com
  User git
  RSAAuthentication yes
  IdentityFile ~/.ssh/id_rsa_github

يمكنني الالتزام والدفع دون أي مشكلة من سطر الأوامر والبرج.
لكن لا يمكنني في VScode ... تعيد لي رسالة الإخراج هذه في كل مرة أحاول:

بوابة السحب
تم رفض الإذن (المفتاح العام).
فادح: تعذرت القراءة من مستودع بعيد.
يرجى التأكد من أن لديك حقوق الوصول الصحيحة
والمستودع موجود.

شكرا لمساعدتك

بالنسبة لي هذا حقا مانع. أحب VSC ، لكن بدون القدرة على استخدام git لا يمكنني استخدامه كمحرر يومي.

MartinZubekjmbelloteau هل بدئها من سطر الأوامر حيث كنت قد بدأت الإصلاح وكيل SSH ذلك بالنسبة لك؟

تضمين التغريدة

من المحطة الطرفية قمت بالاتصال بـ Git البعيد الخاص بي باستخدام الأمر:

ssh -T [email protected]

... ثم فتحت VScode من المحطة باستخدام الأمر:

code

عندما أضغط من VScode ، ما زلت أحصل على نفس الخطأ ...
هذه حقا مشكلة!

MartinZubek هنا ، VScode مذهل ، أكثر بكثير من Atom.
أحب سرعة المحطة الطرفية المتكاملة UX وإمكانية استخدام git.

لكننا نحتاج أيضًا إلى الاتصال بـ GIT البعيد لنكون آمنًا. هذا يعني حماية كلمة المرور SSH ...

يجعل الإحساس ... أليس كذلك؟

andrewducker في الواقع إنه يعمل بالنسبة لي بهذه الطريقة. :)
هل هناك أي فرصة للعمل بشكل أصلي دون الحاجة إلى تشغيله من سطر الأوامر؟

مرحبا @ MartinZubek ،

ماذا تعمل من أجلك؟ يمكنك أن تكون أكثر تحديدا؟ 😄

jmbelloteau بالتأكيد ، لم يعد ينتهي بخطأ "تم رفض الإذن (المفتاح العام)" وأعمال git pull / push كما هو مفترض. يستخدم المفتاح الصحيح من الملف ~ / .ssh / config وعندما تكون هناك حاجة إلى عبارة مرور المفتاح ، تنبثق هذه النافذة:
http://imgur.com/wpExMMP

MartinZubek حتى تتمكن من الدفع من VScode ؟! هذا جيد...
هل قمت بتشغيله من سطر الأوامر حيث بدأت عميل SSH؟
إذا كانت الإجابة بنعم ، فكيف؟
لا أفهم لماذا لا تعمل على بيئتي

jmbelloteau نعم ، لقد أطلقت vscode من سطر الأوامر الذي أستخدمه (إنه git-bash.exe الذي يأتي مع git للنوافذ افتراضيًا ، على وجه الدقة). لم أكن مضطرًا لبدء وكيل ssh أو أي شيء يدويًا. أعتقد أنه يبدأ تلقائيًا مع git-bash أو شيء من هذا القبيل.

MustafaHosny اللهم امين ...

حتى كما قلت لا يعمل معي

vscodeteam أي خطة للتعامل مع هذه المشكلة؟

jmbelloteau الأمر صعب للغاية. إنه أيضًا ضرب وفشل تمامًا. ما حاولت تنفيذه هو بدء وكيل ssh ضمن عملية العقدة بحيث تكون متغيرات env متاحة لـ VSCode ولكن هذا يعني أن مثيلات VSCode المتعددة ستحتاج إلى عدة وكلاء ssh ولا تزال تتطلب إدخال عبارات مرور في كل مرة.

أنا أبحث عن طريقة لاستخدام متغير SSH_AUTH_SOCK بدلاً من ذلك. إنه يعمل على Linux ولكن لا يزال يتعين عليه اختباره على Windows.

هناك مشكلة مضافة من OpenSSH و Windows Powershell SSH و PuTTY.

إذا كان أي شخص على استعداد لاختباره ، فيمكنني دفع الكود إلى مفترقتي ويمكن للأشخاص اختباره. سيستغرق الأمر بعض الوقت لأنني استخدمت مسارات مشفرة (دليل على مفهوم الشيء).

أعتقد أنني سأحصل عليه بحلول السبت أو الأحد.

مرحبا hashhar !

شكرا لإجابتك.
في الواقع يبدو الأمر معقدًا حقًا. 😞

أنا لست مطورًا حقًا ، لذا لا يمكنني مساعدتك حقًا ، وسأظل موجودًا في حال وجدت السحر وأرسل لك حظًا سعيدًا!

hashhar بخصوص تعليقاتك ، لدي

  1. يمكنك الذهاب لإعادة تشغيل VSCode بالكامل (بما في ذلك عملية العقدة الأصلية) تحت ssh-agent ، تشغيل بواسطة ssh-agent path/to/code ؛ بهذه الطريقة ، ليست هناك حاجة لتشغيل مثيل واحد من عامل ssh لكل عملية عقدة.
  2. يمكنك تشغيل عامل ssh من عملية عقدة ، والحصول على متغيرات البيئة (مثل طباعتها في ملف) ومشاركتها من خلال جميع العمليات.

يمكنني بالتأكيد الاختبار. هل أحتاج إلى شيء معين لبنائه؟ لقد قمت بتثبيت الإصدار الرسمي.
يمكنني بناءه على الرغم من :)

joaomoreno أعتقد أن لدي إصلاح جزئي جاهز.

في الملف extensions/git/src/askpass.ts ، قمت بتغيير getEnv() إلى:

getEnv(): Promise<any> {
        return this.portPromise.then(port => ({
            ELECTRON_RUN_AS_NODE: '1',
            GIT_ASKPASS: path.join(__dirname, 'askpass.sh'),
            VSCODE_GIT_ASKPASS_NODE: process.execPath,
            VSCODE_GIT_ASKPASS_MAIN: path.join(__dirname, 'askpass-main.js'),
            VSCODE_GIT_ASKPASS_PORT: String(port),
            SSH_AUTH_SOCK: process.env['SSH_AUTH_SOCK'],
            SSH_AGENT_PID: process.env['SSH_AGENT_PID'],
            SSH_ASKPASS: process.env['SSH_ASKPASS'] || '/usr/lib/ssh/x11-ssh-askpass'
        }));
    }

يتم اختيار SSH_AUTH_SOCK من بيئة المستخدم إذا تم تعيينها.

الأشياء التالية ممكنة الآن:

| وكيل ssh | مفتاح ssh تم تحميله في الوكيل | نتيجة |
|: ---: |: ---: |: ---: |
| ✔ | ✔ | ✔ |
| ✔ | ✘ | تم تنفيذ SSH_ASKPASS $ |
| ✘ | ✘ | لا شيء يحدث |

لإصلاح المشكلة في الصف الثاني ، يمكننا تعيين SSH_ASKPASS من askpass.ts أيضًا وهذا يتسبب في قيام VSCode بتشغيل البرنامج عند بدء التشغيل وطلب عبارات مرور مفاتيح SSH.

بالنسبة للصف الأخير ، سنحتاج إلى بدء وكيل ssh من داخل VSCode وتعيين المتغيرات المناسبة.

المتطوعين؟

إذا كان شخص ما على استعداد لاختبار هذا ، فيمكنك استنساخ مفترقتي (https://github.com/hashhar/vscode) ، قم بالتبديل إلى الفرع git-ssh-key وقم بإنشائه وتشغيله. يرجى محاولة التحقق مما يحدث في جميع المجموعات من الجدول أعلاه. للحد من الضوضاء هنا ، يمكنك التعليق على هذه المشكلة .

hashhar يتم دائمًا تمرير process.env بالكامل إلى Git عند تفريخها:

https://github.com/Microsoft/vscode/blob/master/extensions/git/src/git.ts#L383

ألا يتم تمرير هذه المتغيرات بدون مقتطفك؟

تضمين التغريدة يظهر لي الحفر أعمق مشكلتين.

  1. يبدو أن VSCode لا يستخدم المتغير SSH_ASKPASS. تم ترميزه الثابت إلى "/ usr / lib / ssh-ssh-askpass". المشكلة الوحيدة في الأساس هي أن VSCode لا تساعد Git من خلال إخبارها بكيفية تشغيل مطالبة للحصول على عبارة مرور ssh-key للمستخدم.

توفر معظم الأدوات على نظام التشغيل Linux برنامجًا مرتبطًا برمز "/ usr / lib / ssh / ssh-askpass" ولكن الكثير منها لا يفعل ذلك. إذن هذه مشكلة أعتقد أن الناس يواجهونها.

لقد تمكنت من استخدام VSCode مع SSH طالما تمت إضافة مفتاح ssh بالفعل إلى حلقة مفاتيح وكيل ssh.

أعتقد أنني كنت غبيًا.

لكى يفعل:

  1. قم بتوسيع vscode-askpass.ts وما إلى ذلك لـ ssh أيضًا.
  2. بدء وكيل ssh إذا لم يكن قيد التشغيل بالفعل. هذه مجرد مشكلة ملائمة وإلا فسيتعين عليك إدخال عبارة المرور لكل عملية git.

أنا آسف لعدم العمل بشكل كامل.

لا تقلق ، من الرائع أن تقفز على هذا! 👍

لقد واجهت هذا الخطأ منذ فترة ، واعتقدت أنه أنا. أي مزيد من التقدم في هذا؟

+1

+1

+1

+1

من فضلك ، توقف عن البريد العشوائي! استخدم زر الاشتراك وزر التفاعل ولا تكتب مثل هذه التعليقات عديمة الفائدة.

أنا أيضا لدي نفس المشكلة.

image

الغريب ، بالنسبة لي ، هذا يعمل في Git Bash ، ولكن ليس في Bash لنظام التشغيل Windows (حيث أحصل على الخطأ Permission denied (publickey) المذكور أعلاه):

$ eval `ssh-agent`
$ ssh-add /path/to/key
$ code

يمكنني التحقق من أن مفتاح SSH يعمل عن طريق إرساله مباشرة إلى جهاز التحكم عن بُعد في كلتا الحالتين ؛ الاختلاف الوحيد الذي يمكنني رؤيته هو أنه عند بدء التشغيل في Bash for Windows ، يحذر VSCode من أنه لا يمكنه تحديد دليل العمل الحالي.

نفس المشكلة هنا ، لقد جربت جميع الحلول المقترحة تقريبًا.

أنا على MacOs

DavidBabel أنا على أنظمة تشغيل Mac وأتجاوز المشكلة مؤقتًا باستخدام مفتاح ssh بدون عبارة مرور ...

letsdevus شكرًا على المساعدة ، لكن للأسف لا يمكن ذلك في سياق احترافي

الطريقة الوحيدة التي اكتشفتها لإنجاحها هي:

  1. قم بتثبيت مجموعة PuTTY
  2. عيّن plink كخلفية لـ Git SSH (مع متغير البيئة GIT_SSH )
  3. أضف إلى PuTTYgen مفتاح الوصول الخاص بك
  4. قبل كل العمليات ، في موجه الأوامر ، استخدم plink للاتصال بالخدمة التي تريد استخدامها

هذه هي الحيلة.

عند حدوث نفس المشكلة ، ومع استمرارها في المحاولة مرة أخرى ، فإنها تطرق إلى أداء VSCode أيضًا 👎

لقد صادفت هذه المشكلة بنفسي. لحسن الحظ ، يعمل الحل البديل (بدء الكود من shell) بالنسبة لي ، ولكن سيكون من الجيد إذا تم إصلاح المشكلة.

فقط صدمت في هذا أيضًا ، يبدو أن محلول المعجون يساعد ، لكنني أفضل ألا يكون لدي معجون على الإطلاق.

أنا أتعامل مع هذه المشكلة أيضًا. أنشأت حسابًا منفصلاً للعمل ولدي حسابي الشخصي. لقد كنت أعمل مع ملفات العمل كثيرًا مؤخرًا. أنا قادر على الوصول ولكن يجب أن أدخل عبارة المرور في كل مرة. ليس قاتلا ولكن أقل إنتاجية.

من المخيب للآمال بعض الشيء أن محاولة استنساخ مستودع باستخدام واجهة مستخدم VSC لا تعمل باستخدام عنوان URL git على غرار ssh. بالنسبة للسجل ، أستخدم مفتاح SSH محميًا بكلمة مرور ، وكثيرًا ما لا أقوم بتشغيل وكيل SSH. أجد مطالبة كلمة المرور الإضافية لإلغاء قفل مفتاحي في الواقع مطمئنة إلى حد ما - خاصة عند دفع التغييرات للخارج. :-) إنها ليست ضخمة ، لأن سطر الأوامر يعمل بشكل جيد بالنسبة لي (بالنسبة للسجل ، فأنا أقوم بتشغيل رمز VS على نظام macOS.)

gdamore لذا ، فهو يعمل بالفعل من أجلك ، بدون وكيل ... لكننا نتحدث عن Windows. 😝
على أي حال ، ما هو اسم ملف مفتاح SSH؟ هل هو معيار واحد؟ أو هل VSCode جيد بما يكفي للعثور على الملف المناسب؟

أقوم بتشغيل VScode في الغالب على نظام macOS ، كما هو موضح. ليس لدي أي فكرة عن كيفية عمل هذا على Windows ؛ لا أقوم بالالتزام من Windows ، وبدلاً من ذلك أعتمد على أنظمة الملفات المشتركة (يعمل مثيل تطوير Windows الخاص بي كضيف داخل جهاز افتراضي على جهاز Mac الخاص بي.)

أنا أتلقى هذا الخطأ أيضًا. لا توجد مشكلات على الإطلاق في سطر الأوامر ، ولكن يتعذر تنفيذ أي نشاط git داخل التطبيق نفسه

جعل vscode عديم الفائدة باعتباره بوابة بيئة تطوير متكاملة في سياق العمل

تمكنت من جعله يعمل باتباع منشور المدونة هذا:

http://www.cgranade.com/blog/2016/06/06/ssh-keys-in-vscode.html

تمكنت من جعله يعمل بعد هذا المنشور على stackoverflow:

https://stackoverflow.com/questions/34634364/to-use-git-push-on-visual-studio-code-but-show-could-not-read-from-remote-re

نفس المشكلة على OSX مع مفاتيح محمية بعبارة المرور.

حل بسيط:

أضف متغيرًا بيئيًا للمستخدم يسمى GIT_SSH بمسار إلى C:\Program Files\PuTTY\plink.exe (بعد تكوين المسار إلى المفتاح الخاص باستخدام tortoise git )

هذا يحتاج إلى إصلاح ، فإنه لا يجعل VS Code محررًا يوميًا. : / أي معلومات عن تقدم القضية؟

أحب vscode للحصول على بيانات اعتماد ssh من ssh-add .

على سبيل المثال ، يمكن لشجرة المصدر اكتشاف بيانات الاعتماد المتاحة (باستخدام osxkeychain؟) ، دون أي تكوين إضافي

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree commit -q -F /var/folders/_0/bvqq9l5d2ngg0stvkf53jrbr0000gn/T/SourceTreeTemp.ccbSGv 


git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags --set-upstream origin refs/heads/master:refs/heads/master 
Pushing to [email protected]:hanxue/gif-is-jif.git
To github.com:hanxue/gif-is-jif.git
   4eed265..762069a  master -> master
updating local tracking ref 'refs/remotes/origin/master'
Branch master set up to track remote branch master from origin.
Completed successfully

لقد واجهت هذه المشكلة اليوم ، أنا في لينكس مينت. لقد استخدمت سلسلة المفاتيح .

sudo apt install keychain

eval 'keychain --eval SSHKEY'
وهذا كل شيء.

@ Silentz0r أين قمت بتشغيل الأمر الأخير؟

ValentinH في

يا رفاق هذا ينتظر المبرمج الشجاع لتقديم العلاقات العامة!

في OSX ، أصلحه بفضل https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain :

في ملف ~/.ssh بإنشاء ملف config بالمحتوى التالي:

Host * (asterisk for all hosts or add specific host)
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile <key> (e.g. ~/.ssh/userKey)

تضمين التغريدة
لست متأكدًا من مدى أنا "شجاع" ، لكني معجب بعض الشيء بـ SSH.
سأعمل على العلاقات العامة لشهر ديسمبر.

جميع المواطنين المعنيين ...

بعد اختبار الإعداد السريع ، يبدو أن تكوين Windows 7 واضح تمامًا (انظر GIT_SSH والتعليقات الأخرى) أعتقد أن التعليقات التي يستخدمها OS X باستخدام سلسلة المفاتيح سهلة بنفس القدر.
الإعداد هو في الأساس مشكلة تكوين خارجية. لا يحتاج VSC إلى أي تكوين أو تغييرات في الميزات لاستخدام SSH ، يستدعي git عميل SSH. آسف إذا فاتني شيء واضح.

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

بالنسبة لإدارة بيانات الاعتماد: هذا يريد حقًا أن يتعامل معه وكيل آمن مثل
pagent / سلسلة المفاتيح وما إلى ذلك.

تعليقات؟

"لا يحتاج VSC إلى أي تغييرات في التكوين أو الميزات لاستخدام SSH ، يستدعي git عميل SSH. آسف إذا فقدت شيئًا واضحًا."

(في نظام Windows)

ماذا يحدث
إذا قمت بتشغيل VS Code من اختصار ، ولم أقم أيضًا بتنزيل برنامج تابع لجهة خارجية ونفذت بعض تهيئة سطر الأوامر ، فلن يعمل مع مفاتيح SSH المشفرة.

من ناحية أخرى ، إذا فتحت Eclipse وقمت بالاتصال بمستودع Git ، فسوف يطلب مني عبارة المرور الخاصة بمفاتيحي.

متوقع
يجب أن يظهر تثبيت جديد لـ VSCode ، على نظام بدون تثبيت أي برنامج آخر ، مربع رسالة يطلب عبارة المرور الخاصة بي ، ثم استخدامه لفك تشفير مفاتيحي واستخدامها للاتصال بالمستودع البعيد.

يعمل cleidigh SourceTree تلقائيًا دون اتباع تعليمات ItachiSan ، بينما يتطلب الرمز هذا الإعداد. ربما يمكننا فعل أي شيء يفعلونه.

تضمين التغريدة
تضمين التغريدة
نظرت إلى الكسوف وشجرة المصدر قليلاً. لسوء الحظ ، لا يمكنني حاليًا تثبيت أيٍّ من هذين الأمرين على نظامي ، لذا فإن معرفتي وخبرتي محدودة بواسطة Google ؛-) ضع ذلك في الاعتبار إذا فقدت شيئًا ما. فيما يلي ملخص / اختلاف أساسي:

Eclipse: EGit plug-in: يحتوي على Java git client ، ويبدو أن عميل ssh داخلي ، ويتطلب استيراد المفتاح إذا كان المفتاح موجودًا

SourceTree: الحصول على عميل رسومي ، يتطلب عميل ssh خارجي (من لقطة الشاشة أدناه يفترض plink على Windows) BeginnerForLife أعتقد أن هذا الإعداد ليس بعيدًا عن المتطلبات الحالية.

image

VSC: يتطلب بوابة خارجية / ssh

andrewducker يتتبع وصفك تعليقي ، ما لم تنفذ Code كلاً من git و SSH (بما في ذلك إنشاء المفاتيح وإدارتها) لست متأكدًا من وجود الكثير بينهما. على الرغم من إمكانية القيام بذلك ، فأنا متشكك في أن الفريق سيرغب في سحب كلا الأمرين. joaomoreno يمكنه التحدث عن ذلك.
من وجهة نظر عملية أود أن أشير إلى ما يلي:

  • تعد تجربة git "السهلة الجاهزة" أكثر انسجامًا مع استخدام HTTPS المدمج ، ولا تزال تتطلب بوابة خارجية
  • بالنسبة لحالات العمل التي تتطلب SSH ، أود أن أزعم أن هناك سياسة محتملة للغاية و ssh
    الأدوات سارية المفعول بالفعل ، هذا ما جربته في العديد من الشركات التي عملت بها.
  • بافتراض أن المرء يتفق مع ما سبق ، فإن الاقتران بالأدوات الخارجية سيكون السيناريو الأكثر احتمالا من
    إعداد ssh / git من البداية أو منفردة.
  • لكي أكون واضحًا ، لا أريد بأي حال من الأحوال أن أشير إلى أن ssh ليس مفيدًا و / أو غير مطلوب ، فأنا أقول فقط إن VSC يعمل ويعمل بسهولة إلى حد ما من خلال توجيه git إلى عميل SSH محلي.
  • أعتقد أن هذا يمكن أن يتحقق مع تمديد

بتكرار نفسي ، بدون كل من git / ssh داخليًا للتعليمة البرمجية ، لا يزال يتعين علي تحديد خيار أقل. أنا على استعداد تام للعمل على هذا ، ولكن يجب أن يتوافق مع أهداف الفريق وأن يحصل على مباركة joaomoreno على وجه الخصوص.

cleidigh أنا لا أفهم ما هي الخطة.

تضمين التغريدة
كنت أتمنى الحصول على مزيد من الردود من الأطراف الأخرى ، لكنني بحاجة إلى رأيك / تفضيلك بشأن الخطط المحتملة.
فقط للتوضيح ، يبدو أن الكود يعمل بشكل جيد للوصول إلى مفتاح SSH الخاص عبر git مع القليل من التكوين الخارجي. يقترح البعض هنا تكاملًا أكبر وتجربة محسنة من الجيب.

بعض الطرق الممكنة:

1- تنفيذ مساعد / معالج إعداد git / ssh - Find ssh ، قم بتعيين GIT_SSH - إضافة داخلية
2- نفس 1 مطبق كملحق
3- التوسيع أعلاه لتنسيق تنزيل SSH / git للإعداد الأولي
4- تطبيق عميل / أدوات SSH - إضافة داخلية
5- نفس 4 مطبق كامتداد
6- تنفيذ git / SS H داخليًا - على غرار eclipse / egit

أعتقد أن الرقم 1 كافٍ (ربما 3) على الرغم من حقيقة أنه لا ينفذ كل ما يتحدث عنه الناس. يبدو أن الخيارات من 4 إلى 6 تتطلب الكثير من الجهد وتغيير كبير في المكونات الرئيسية.

التفضيلات joaomoreno / الكل؟

قد يكون من الجيد محاولة استخدام VS Code مع Git على Windows وتحديد نقاط الألم. بالنسبة لي ، المشكلة الرئيسية هي المصادقة.

الخيار 1 هو بالتأكيد المفضل لدي.

تضمين التغريدة
إذا كان لدينا بعض اكتشاف المساعد / ssh والإعداد ، فهل يساعد ذلك؟
لقد قمت بإعداد ssh لـ git لنظام التشغيل Windows ، بالإضافة إلى تثبيت العميل (كان لدي بالفعل) لقد قمت بتعيين GIT_SSH
أضاف أيضًا بصمة مفتاح مع الوكيل.

التركيز على الخيار الأول في تفضيل joaomoreno :

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

أعتقد ولكن لا يمكنني أن أعد كل ما سبق أنه عملي. بافتراض أن لا أحد لديه أي فكرة أخرى رائعة
أعتقد أنه سيكون من الجيد أساسًا وضع نموذج أولي لما سبق.

نرحب بتعليقات إضافية.

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

تضمين التغريدة
شكر. سأبدأ بهذا النهج وآمل أن يتناغم الآخرون مع أي مدخلات أخرى.
أعتقد أنني سأقوم بنشر مؤشر إلى مستودعي قبل أن أقوم بإجراء علاقات عامة لمعرفة ما يعتقده الناس. تحقق مرة أخرى هنا
لتتبع تقدمي.

أوافق على أن (1) هو أفضل نهج. وهذا ما أفعله في الوقت الحالي - ابدأ عامل ssh إذا لم يكن قيد التشغيل بالفعل وقم بتعيين متغيرات البيئة ، ثم ابدأ VS-Code من سطر الأوامر هذا ، لذلك يلتقط متغيرات البيئة.

إذا كان بإمكان VS Code التحقق من أن SSH-Agent لا يعمل بالفعل ثم ابدأ تشغيله إذا لزم الأمر ، فسيكون ذلك رائعًا.

أستخدم وحدة Git الخاصة بـ PowerShell للقيام بكل هذا - ولكنها تستخدم المنطق من:
https://help.github.com/articles/working-with-ssh-key-passphrases/
لذلك نأمل أن ينجح ذلك ، من وجهة نظر Node (على الرغم من أنه من المفترض أنك بحاجة إلى التحقق من أنه يعمل على جميع أنظمة التشغيل)

andrewducker سم مكعب: الكل

تحديث: اضطررت إلى العودة إلى العلاقات العامة السابقة ، لكنني حقًا أحرزت قدرًا كبيرًا من التقدم في هذا:

  • إلى جانب الأشياء السهلة مثل فحص / إعداد GIT_SSH ، والتحقق من عميل git ، وكيل المفتاح
  • وجد أيضًا أنه يبدو أن وكلاء مفاتيح Windows سيسمحون بإضافات المفاتيح بعد بدء التشغيل
  • أعتقد أنه يمكننا تثبيت مفاتيح جديدة ضمن Code بدء تشغيل عامل المفتاح الذي سيطلب هو نفسه عبارة مرور.
  • التجربة التالية هي ما إذا كان بإمكاني اكتشاف فشل تسجيل دخول SSH

يجب أن تكون قادرًا على العودة إلى هذا في غضون يوم أو نحو ذلك.

نفس الشيء هنا على macOS High Sierra مع مفتاح خاص افتراضي محمي بعبارة المرور. يتم تخزين عبارة المرور في سلسلة مفاتيح نظام التشغيل أثناء جلسة تسجيل الدخول. عندما أعيد تشغيل جهاز Mac الخاص بي ، يجب أن أعيد إدخاله قبل أول git pull / git push لبعض الأمان الإضافي ولم يعد يُطلب من عبارة المرور منذ ذلك الحين حتى أقوم بتسجيل الخروج. إليك كيف تتصرف المحطة الطرفية عندما أتفاعل مع الريبو البعيد لأول مرة:

$ cd /path/to/repo
$ git pull
Enter passphrase for key '/Users/me/.ssh/id_rsa':
[me typing passphrase and pressing enter]
Updating 3e97c76..65a959c

ومع ذلك ، عندما يكون VSCode هو الذي يحاول سحب شيء ما بعد إعادة التشغيل ، يظهر هذا الخطأ:

screen shot 2018-02-12 at 11 05 09

الحل هو فتح Terminal ، والانتقال إلى الريبو واكتب git pull . ليست كارثة ، ولكن يمكن تحسينها.

__UPD: __ من المثير للاهتمام ، عندما يتعلق الأمر بطلب عبارة مرور مفتاح GPG لتوقيع التزامات جديدة ، يعمل VSCode على الفور ويظهر نافذة منبثقة مع حقل إدخال.

ما هو الوضع في هذا؟

يظهر الخطأ حاليًا Git: [email protected]: Permission denied (publickey). .

يمكن للمستخدمين الذين قاموا بإنشاء زوج مفاتيح في ~\.ssh المصادقة عبر سطر الأوامر عن طريق إدخال عبارة المرور لزوج المفاتيح ولكن ليس من داخل VS Code.

cleidigh أي حظ؟
هل لدى أي شخص أي فكرة عن كيفية اعتراض حدث طلب كلمة المرور؟ أظن أنه بمجرد أن يتم اعتراض ذلك قد يكون لدي فرصة للقيام بما تفعله الذرة وتوفير مربع نص لاستخدامه. لكن أجهزة الصراف الآلي فقدت الأفكار.

واجهت كل أنواع مشكلات الاعتماد ، حتى أدركت أن المشكلة ليست في VSCode ولكن في البيئة. إذا قمت بتكوين ssh و git وما إلى ذلك بشكل صحيح ، فلن تواجه أي مشاكل ، وهذا صحيح لكل من Linux و Windows. وإذا حدث خطأ ما ، فيمكنك دائمًا إجباره عبر الجهاز.

لست بحاجة إلى إعداد البيئة لـ IDEs الأخرى.
في Eclipse ، على سبيل المثال ، يمكنني تشغيله مباشرةً ، وعندما يحتاج إلى الوصول إلى مستودع git بعيد ، سيطلب مني كلمة المرور لفك تشفير مفاتيح SSH الخاصة بي.
يجب أن يقوم Visual Studio Code بالمثل.

الكل: تحديث
بينما أحرزت قدرًا كبيرًا من التقدم في هذا الشأن ، كان عليّ أن أضعه جانبًا لعدة أسباب ، لذا لم أحقق تقدمًا كبيرًا منذ يناير. اسف بشأن ذلك. آمل أن يستمر هذا في مايو.

إلى @ john681611andrewducker

كما هو موضح سابقًا في الموضوع ، فإن القضية الأساسية التي لا يمكن تنفيذها "بشكل نظيف"
هو موجه أو أي نوع من إدارة المفاتيح. هذا لأن Code يعتمد على GIT و
تعتمد GIT على أنظمة SSH. بدون تنفيذ التعليمات البرمجية لهذه داخليًا (مثل الكسوف) لدينا خيارات محدودة للتفاعل مع هذه المكونات الخارجية.

يمكن أن يقوم النموذج الأولي الحالي الخاص بي بما يلي:

  • تحقق مما إذا كان أي مستودع يستخدم SSH إذا بدأ معالج التكوين على النحو التالي:
  • التحقق والمطالبة بمتغير البيئة GIT_SSH
  • تحقق من عميل SSH
  • فرض حوار كلمة المرور من العميل إذا كان ذلك ممكنًا (WIP) لاحظ أن هذا الموجه هو العميل وليس التعليمات البرمجية

لقد وافقت على أنه سيكون من الجيد لكل من andrewducker أن يرد مثل Eclipse ، ولكن هذا يعني أن على الفريق تنفيذ جزء مهم من الوظائف يعتني به بالفعل.

ملاحظة: قد يكون الأسلوب الآخر هو ما إذا كان بإمكاننا جعل عميل GIT الرسمي يتعامل مع المزيد من معلمات الأمان التي يمكننا استخدامها للتحكم في SSH. من شأن ذلك أن يحافظ على الهندسة المعمارية الحالية كما هي

الكل / التحديث

لقد كنت أعمل على الجزء الأخير والأكثر أهمية من النموذج الأولي: رقاقة askpass للسماح لـ Code بتوفير موجه GUI لعبارة مرور أصلية. في الوقت الحالي ، أعتقد أن هذا سيكون ممكنًا ، وبالتزامن مع وكيل ssh-agent المناسب للنظام الأساسي ، سيتم تخزين بيانات الاعتماد بالطريقة العادية.

مشكلتي هي أنه لا يمكنني الحصول على SSH أو GIT لتكريم SSH_ASKPASS أو GIT_ASKPASS أو core.askpass ضمن GIT Bash أو CMD على Windows. موجه المحطة هو الشيء الوحيد الذي يظهر. كاختبار أساسي ، قمت بتعيين واحد أو كل هؤلاء على git-gui المدمج - askpass ، لكن هذا لا يعمل أيضًا على الرغم من أن البرنامج قابل للتنفيذ إذا تم اختباره من سطر الأوامر.

هل استخدم أي شخص هذه الأساليب لتغيير إدخال عبارة المرور على Windows أو أي سيناريوهات أخرى ذات صلة؟

Sourcetree فقط ينبثق محطة طرفية أيضًا. انها ليست بهذا السوء.

للإضافة إلى حل ValentinH على نظام UseKeychain إصلاح المشكلة على جهازي (macOS 10.13.5 High Sierra Developer Beta، 17F70a). يبدو أن التوجيه AddKeysToAgent غير ضروري. يعمل هذا التكوين بالنسبة لي:

Host github.com
  HostName github.com
  IdentityFile /path/to/your/ssh/private/key
  UseKeychain yes

ما هو الوضع في هذا؟

14581: يتطلب VS Code تسمية مفاتيح git ssh باسم "id_rsa" "تم إغلاقها كنسخة مكررة من هذه المشكلة. لست متأكدًا من أنني أرى كيف أن هذا مكرر - "دعم git بكلمة مرور المفتاح الخاص". هذه تبدو وكأنها قضايا منفصلة.

تحرير: كان هذا مجرد إصلاح لمثيل واحد من المحطة التي كنت أقوم بتشغيلها ؛ حتى فتح محطة جديدة في نفس جلسة الكود أدى إلى خطأ المفتاح العام مرة أخرى

يبدو أن وكيل ssh الخاص بي قد مات في مرحلة ما أو نسي مفتاحي غير "id_rsa" الذي أستخدمه في git. لذلك جريت للتو:

eval "$(ssh-agent -s)"
ssh-add path/to/my/github/ssh/private/key

وعاد كل شيء إلى طبيعته. هذا هو تسلسل الأوامر التي يطلب GitHub منك تشغيلها عند إعداد مفتاح SSH جديد على أي حال.

سوف أعترف أنني لم أقرأ معظم هذا الموضوع ، لكن بالنسبة لي هذا نجح.

cleidighjoaomoreno هذا قد لا يكون خطأ بل وضع غير صحيح حتى مفاتيح SSH، لا سيما في ماك. غيّرت Sierra جذريًا طريقة الاحتفاظ بالمفاتيح في الجلسة

أنا فقط أحلها عندما أقوم بتوليد sshkey جديد بدون عبارة المرور عليه. أعتقد أنه ربما لا يمكن لـ vscode فتح غلاف للسماح لك بكتابة عبارة المرور.

كنت بحاجة فقط لإضافة مفتاحي إلى سلسلة مفاتيح Mac بـ ssh-add -K ~/.ssh/id_rsa ؛ استبدل id_rsa بمفتاحك إذا كنت لا تستخدم المفتاح الافتراضي.

حل بديل لنظام التشغيل Windows 10:

  1. اجعل Git يستخدم OpenSSH الذي يأتي مع Windows بدلاً من الذي يأتي مع Git.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. قم بتعيين خدمة وكيل ssh (وليس تلك التي تأتي مع git) للتشغيل تلقائيًا.
    افتح إدارة المهام ، علامة التبويب الخدمات ، انقر فوق فتح الخدمات.
    ابحث عن وكيل مصادقة OpenSSH ، وافتح الخصائص ، واضبط نوع بدء التشغيل على تلقائي ، واضغط على موافق.
    ابدأ أيضًا الخدمة أو أعد تشغيل الكمبيوتر.
  3. أضف المفتاح المحمي بكلمة المرور إلى الوكيل.
    ssh-add
    يجب أن يلتقط تلقائيًا المفاتيح المخزنة في C: \ Users \٪ USERNAME٪ \. ssh حيث يقوم ssh-keygen بإنشائها.
    أدخل كلمة المرور الخاصة بك في الموجه.

ملاحظة: إذا قمت ، عند تثبيت Git لنظام التشغيل Windows ، بتحديد خيار إضافة أوامر bash إلى PATH ، فقد يشير الأمر ssh-add إلى الملف القابل للتنفيذ الخطأ. إذا كان الأمر كذلك ، يمكنك تشغيل المفتاح المضمن يدويًا لإضافة مفتاحك إلى الوكيل:
C:\Windows\System32\OpenSSH\ssh-add.exe

الآن سيتم تشغيل وكيل مصادقة OpenSSH المدمج عند بدء التشغيل مع إلغاء قفل المفتاح المحمي بكلمة مرور ، وسيستخدم Git Windows OpenSSH بدلاً من مفتاحه الخاص. لذلك لا داعي لكتابة كلمة المرور الخاصة بك في كل مرة ، ولا داعي لبدء تشغيل وكيل ssh يدويًا ، ولا حاجة لبدء VS Code من سطر الأوامر.

تمامًا كما لاحظ LynnScarlett ، لا توجد طريقة لإدخال عبارة المرور للمفتاح واستخدام سلسلة المفاتيح غير آمن ، فهل سيضيف VSC دعمًا لهذه الميزة الأساسية؟

لا أرى كيف أن Keychain غير آمنة. علاوة على ذلك ، تسمح IDE المشهورة بإدخال كلمة المرور ، لذلك يمكن لـ VSC دعم كلتا طريقتي الإدخال إلى حد كبير

قصدت وكيل ssh ، ربما أكون مربكًا بين شيئين ، لست متأكدًا:)

وكيل Ssh هو فقط "غير آمن" بمعنى أنه يقوم بتحميل المفتاح لكل جلسة. لديك مشاكل أخرى إذا كان لديك جهاز كمبيوتر مخترق

هذا ما يفسر عدم الأمان في استخدام وكيل ssh بمزيد من التفاصيل:
http://rabexc.org/posts/pitfalls-of-ssh-agents
في صحتك!

كل هذا يتلخص في: لا تثق في جهازك لشخص آخر لديه حق الوصول إلى الجذر - وهو ما لا ينبغي عليك القيام به على أي حال. لذا مرة أخرى: إذا تم اختراق وكيل ssh بسبب التفاصيل الواردة في تلك المقالة ، فستواجه مشكلات أكبر

حل whatsyourgithub بالنسبة لي. لكنني أعتقد أنه ليس الحل الأفضل.

إصدار كود VS: الكود 1.27.2 (f46c4c4 ، 2018-09-12T16: 17: 45.060Z)
إصدار نظام التشغيل: Windows_NT x64 10.0.17134
إصدار بوابة 2.19.0.windows.1

لا يزال لا يعمل.

لقد مر عامان الآن ، ولا يزال هناك حل لهذا الأمر. تنطبق نفس المشكلة على Atom ، لذا أعتقد أن هذا ليس شيئًا يمكن إضافته بسهولة؟ كل ما أريده حقًا هو الضغط (باستخدام عبارة المرور) في قائمة الإجراءات الإضافية

يسعدني كتابة عبارة المرور في كل دفعة ، لا أريد فقط أن أضطر إلى الانتقال إلى سطر الأوامر وكتابة أوامر git الأولية.

لقد مر عامان الآن ، ولا يزال هناك حل لهذا الأمر. تنطبق نفس المشكلة على Atom ، لذا أعتقد أن هذا ليس شيئًا يمكن إضافته بسهولة؟ كل ما أريده حقًا هو الضغط (باستخدام عبارة المرور) في قائمة الإجراءات الإضافية

يسعدني كتابة عبارة المرور في كل دفعة ، لا أريد فقط أن أضطر إلى الانتقال إلى سطر الأوامر وكتابة أوامر git الأولية.

حاول استنساخ الريبو باستخدام https بدلاً من ssh. هذا يجعل VS Code يطلب اسم المستخدم وكلمة المرور لي.

لقد جئت للتو من Atom للتحقق من Github Pull Request في VS Code وكان التفكير الأول

يرجى التأكد من أن لديك حقوق الوصول الصحيحة
والمستودع موجود.

git show: index.html
git pull - علامات الأصل الرئيسي
git show: index.html
[email protected] : تم رفض الإذن (publickey).
فادح: تعذرت القراءة من مستودع بعيد.
يرجى التأكد من أن لديك حقوق الوصول الصحيحة
والمستودع موجود.

لذلك لن أستخدم الخيار مع مفتاح ssh فقط دون كتابة كلمة المرور الخاصة بي أيضًا.
لذلك سأعود إلى كود VS و Github Pull Request فيما بعد.
أحب ما قام به المجتمع حتى الآن وأتطلع إلى استخدام هذا في المستقبل مع تفضيل الأمان الخاص بي.

حاول استنساخ الريبو باستخدام https بدلاً من ssh. هذا يجعل VS Code يطلب اسم المستخدم وكلمة المرور لي.

شكرا ، هذا يعمل معي أيضا. وإذا قمت بتثبيت مدير بيانات اعتماد Git for Windows واكتب الأمر التالي في git bash shell في كود VS:
git config --global credential.helper manager
ثم مزامنة وسحب العمل دون الحاجة إلى إعادة إدخال معرف مستخدم Gitlab وكلمة المرور.

سيكون من الجيد إذا كان بإمكان المرء أن يفعل الشيء نفسه لـ SSH ، بالنظر إلى أن هذا هو مسار Gitlab repo الافتراضي.

whatsyourgithub ،
Git: لا توجد هوية كهذه: /C/Users/myuser/.ssh/myrsaKey_rsa
على الرغم من وجود الملف هناك.
وشيء آخر ... أثناء تجربة C: \ Windows \ System32 \ OpenSSHssh-add.exe ، أحصل أيضًا على لا يوجد مثل هذا الملف أو الدليل.
أنا أستخدم بوويرشيل VSCode لكتابة هذه الأوامر
أيه أفكار؟

لقد تحولت إلى https بدلاً من SSH. هذه هي الطريقة الوحيدة التي يمكنني من خلالها اللعب بشكل لطيف. ومن المثير للاهتمام أن Github توصي بالفعل باستخدام https بدلاً من SSH.

whatsyourgithub ،
Git: لا توجد هوية كهذه: /C/Users/myuser/.ssh/myrsaKey_rsa
على الرغم من وجود الملف هناك.
وشيء آخر ... أثناء تجربة C: \ Windows \ System32 \ OpenSSHssh-add.exe ، أحصل أيضًا على لا يوجد مثل هذا الملف أو الدليل.
أنا أستخدم بوويرشيل VSCode لكتابة هذه الأوامر
أيه أفكار؟

سأحاول فتح Powershell خارج VS Code أولاً ، على الرغم من أنه لا ينبغي أن يكون مهمًا.

من المفترض أن يتم تثبيت OpenSSH بأحدث إصدارات Windows 10. حاول التحديث.
إذا لم يفلح ذلك ، فحاول الانتقال إلى الإعدادات> التطبيقات> التطبيقات والميزات> إدارة الميزات الاختيارية> إضافة ميزة وابحث عن OpenSSH.

whatsyourgithub ،
Git: لا توجد هوية كهذه: /C/Users/myuser/.ssh/myrsaKey_rsa
على الرغم من وجود الملف هناك.
وشيء آخر ... أثناء تجربة C: \ Windows \ System32 \ OpenSSHssh-add.exe ، أحصل أيضًا على لا يوجد مثل هذا الملف أو الدليل.
أنا أستخدم بوويرشيل VSCode لكتابة هذه الأوامر
أيه أفكار؟

سأحاول فتح Powershell خارج VS Code أولاً ، على الرغم من أنه لا ينبغي أن يكون مهمًا.

من المفترض أن يتم تثبيت OpenSSH بأحدث إصدارات Windows 10. حاول التحديث.
إذا لم يفلح ذلك ، فحاول الانتقال إلى الإعدادات> التطبيقات> التطبيقات والميزات> إدارة الميزات الاختيارية> إضافة ميزة وابحث عن OpenSSH.

مرحبا.
شكرا على الرد.
تم تثبيت OpenSSH (العميل) بالفعل.
كررت الإجراء باستخدام بوويرشيل المستقل ولكني ما زلت أتلقى رسالة الخطأ
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
هل هذا متعلق بملكية RSAPRIVKEY_rsa؟ لم أقم بإصدار المفتاح باستخدام بوويرشيل ولكنني قمت بنسخه من مكان آخر (على أي حال ، فهو يعمل مع شجرة المصدر أو مع Git GUI)

whatsyourgithub ،
Git: لا توجد هوية كهذه: /C/Users/myuser/.ssh/myrsaKey_rsa
على الرغم من وجود الملف هناك.
وشيء آخر ... أثناء تجربة C: \ Windows \ System32 \ OpenSSHssh-add.exe ، أحصل أيضًا على لا يوجد مثل هذا الملف أو الدليل.
أنا أستخدم بوويرشيل VSCode لكتابة هذه الأوامر
أيه أفكار؟

سأحاول فتح Powershell خارج VS Code أولاً ، على الرغم من أنه لا ينبغي أن يكون مهمًا.
من المفترض أن يتم تثبيت OpenSSH بأحدث إصدارات Windows 10. حاول التحديث.
إذا لم يفلح ذلك ، فحاول الانتقال إلى الإعدادات> التطبيقات> التطبيقات والميزات> إدارة الميزات الاختيارية> إضافة ميزة وابحث عن OpenSSH.

مرحبا.
شكرا على الرد.
تم تثبيت OpenSSH (العميل) بالفعل.
كررت الإجراء باستخدام بوويرشيل المستقل ولكني ما زلت أتلقى رسالة الخطأ
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
هل هذا متعلق بملكية RSAPRIVKEY_rsa؟ لم أقم بإصدار المفتاح باستخدام بوويرشيل ولكنني قمت بنسخه من مكان آخر (على أي حال ، فهو يعمل مع شجرة المصدر أو مع Git GUI)

حسنا. تم حلها .. في ملف ./ssh/config كان لدي المسار إلى مفتاح ssh C: \ Users \.ssh \ RSAKEY_rsa وقم بتغييرها إلى ~ / .ssh / RSAKEY_rsa
ثم كان عليه فقط تسجيل المفتاح وكان هذا كل شيء.
شكر

whatsyourgithub ، آسف على الإزعاج مرة أخرى. أحاول مساعدة زميلي وهو لا ينجح (القيام بما اقترحته أعلاه يعمل بالنسبة لي ولكن ليس له). هذه هي الأعراض:
إنه قادر على إجراء إحضار git من وحدة تحكم PS ولكن عندما يدفع أو يتزامن باستخدام gitacora (المكون الإضافي للمزامنة تلقائيًا - والذي أستخدمه أيضًا دون أي مشاكل) يتلقى رسالة الخطأ التالية:
Permission denied (publickey).
نعلم أن OpenSSH قد أضاف المفتاح لأن C:\Windows\System32\OpenSSH\ssh-add.exe -L يسترد مفتاحه العام ولأننا إذا استخدمنا الأمر git fetch من PS ، فإنه يعمل.
أي فكرة عن كيف يمكن أن تساعده في التشخيص / الإصلاح؟

whatsyourgithub ، آسف على الإزعاج مرة أخرى. أحاول مساعدة زميلي وهو لا ينجح (القيام بما اقترحته أعلاه يعمل بالنسبة لي ولكن ليس له). هذه هي الأعراض:
إنه قادر على إجراء إحضار git من وحدة تحكم PS ولكن عندما يدفع أو يتزامن باستخدام gitacora (المكون الإضافي للمزامنة تلقائيًا - والذي أستخدمه أيضًا دون أي مشاكل) يتلقى رسالة الخطأ التالية:
Permission denied (publickey).
نعلم أن OpenSSH قد أضاف المفتاح لأن C:\Windows\System32\OpenSSH\ssh-add.exe -L يسترد مفتاحه العام ولأننا إذا استخدمنا الأمر git fetch من PS ، فإنه يعمل.
أي فكرة عن كيف يمكن أن تساعده في التشخيص / الإصلاح؟

يبدو أن مفتاحه غير مرتبط بحسابه على github ، أو لم تتم إضافة حسابه على github كمتعاون في الريبو.

يبدو أن مفتاحه غير مرتبط بحسابه على github ، أو لم تتم إضافة حسابه على github كمتعاون في الريبو.

أنا أدير خادم bitbucket وأضفت مفتاح الحانة الخاص به هناك (وهو في الواقع قادر على الوصول إلى الجلب والدفع عندما يستخدم سطر الأوامر عبر PowerShell).
أم أنه شيء لم أفهمه من إجابتك؟

كنت بحاجة فقط لإضافة مفتاحي إلى سلسلة مفاتيح Mac بـ ssh-add -K ~/.ssh/id_rsa ؛ استبدل id_rsa بمفتاحك إذا كنت لا تستخدم المفتاح الافتراضي.

macOS High Sierra مقابل الكود
[email protected] : تم رفض الإذن (publickey).
فادح: تعذرت القراءة من مستودع بعيد.

وضع علامة على هذا لأن هذا أدى إلى حل المشكلة مع git المتكامل الذي لا يعمل داخل vscode على الرغم من أنه يعمل بشكل جيد من سطر الأوامر.

whatsyourgithub يبدو أنه يعمل عبر git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" بعد أن أقوم بإنشاء id_rsa جديد.

  1. لكن المفتاح يحتوي على كلمة مرور ، عندما أضغط لا يوجد حوار نوافذ موجه للسماح لي بإدخال كلمة المرور الخاصة بي.
  2. إذا استخدمت مفتاحًا تم الخروج منه على جهاز الكمبيوتر الخاص بي عبر ssh-add .ssh\id_rsa ، فهناك خطأ. لماذا لا يمكنني إضافة المفتاح؟ أريد استخدام نفس المفتاح الذي أضفته من قبل.
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
Permissions for 'D:/ablob/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "D:/ablob/.ssh/id_rsa": bad permissions
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

نظام التشغيل: Windows 10
VSC: 1.28

أي تحديثات؟

أي خطط للتعامل مع هذا في المستقبل القريب؟

وفقًا لوثائق VS Code (https://code.visualstudio.com/docs/editor/versioncontrol):

هل يمكنني استخدام مصادقة SSH Git مع رمز VS؟
نعم ، على الرغم من أن VS Code يعمل بسهولة أكبر مع مفاتيح SSH بدون عبارة مرور. إذا كان لديك مفتاح SSH مع عبارة مرور ، فستحتاج إلى تشغيل VS Code من موجه Git Bash ليرث بيئة SSH الخاصة به.

هذه الصفحة بتاريخ 12/12/2018.

لذلك قمت للتو بإنشاء مفاتيح ssh جديدة بدون عبارة مرور (من خلال تركها فارغة عند المطالبة والكتابة فوق الكلمات السابقة) ، وإضافتها إلى حسابي على GH وإضافة الهوية إلى وكيل ssh عن طريق تشغيل ssh-add.exe ~\.ssh\id_rsa . الآن ، كل شيء يعمل.

إذا تمكن الآخرون من تأكيد ذلك ، فإنني أقترح إغلاق هذا الموضوع نظرًا لأن وثائق VS Code الرسمية تنص بالفعل صراحةً على أنها ستعمل فقط مع عبارات المرور عن طريق إطلاق VS Code من git-bash.

إذا تمكن الآخرون من تأكيد ذلك ، فإنني أقترح إغلاق هذا الموضوع نظرًا لأن وثائق VS Code الرسمية تنص بالفعل صراحةً على أنها ستعمل فقط مع عبارات المرور عن طريق إطلاق VS Code من git-bash.

حسنًا ، تقول الوثائق "بسهولة أكبر" ، لا تعني أنها لن تعمل على الإطلاق عندما تحتوي المفاتيح على عبارات مرور ، واقتراحها بإطلاق VS Code من موجه Git Bash مطلوب فقط لأولئك الذين يستخدمون Git-for-Windows ' وكيل SSH لإدارة مفاتيحهم.

يمكنني في الواقع أن أؤكد أنني أستخدم وكيل SSH لنظام Windows (وليس العامل الذي يأتي مع Git لنظام التشغيل Windows) ، وقم بتحميل مفتاح SSH (المحمي بكلمة مرور) فيه ، ثم قم بتشغيل VS Code بشكل طبيعي (ليس من أي موجه أوامر محدد) و يمكنني الدفع / السحب بنجاح إلى عمليات إعادة الشراء التي تتطلب مفتاحي.

أؤكد أن فتح VS Code عبر git bash سيطلب مفتاح ssh وفي رمز VS سيطلب عبارات مرور ssh في الجهاز.

واجهت مشكلة مماثلة مع VSCode على نظام التشغيل Windows 10 حيث لم يتم الدفع / الانسحاب من _ ssh: // repo_ بينما كان ذلك ممكنًا في الجهاز.

أنا أستخدم CMDer مع git-for-windows وتم تكوين VSCode مع git.path الذي يشير إلى هذه الثنائيات. لدي أيضًا ملف تكوين ssh في دليل _٪ USERPROFILE٪ \. ssh_ مع جميع الخيارات الضرورية وملف الهوية مضبوطًا على ملف المفتاح العام. يقوم KeePass مع KeeAgent بخدمة المفاتيح.

الإجراء المذكور سابقًا لتشغيل Terminal (CMDer) أولاً ثم تشغيل Code منه يعمل بشكل جيد ولكن لم يعجبني. لذلك حاولت (بنجاح) طريقة أخرى:
لقد أنشأت ملف cmd في دليل git.exe:

<strong i="10">@echo</strong> off
set SSH_AUTH_SOCK=/path/to/my/sock.file
%~dp0git.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

(يحتاج مسار SSH_AUTH_SOCK إلى وجود خطوط مائلة للأمام) وخيار git.path مدبب في التعليمات البرمجية إليه.

يبدأ الكود الآن ، ويبدو أنه يقرأ ملف _ ~ / .ssh / config_ بدون أي "اختراق" إضافي ، وهو قادر على استخدام الوكيل.

تعديل:
أعتقد أن تعيين متغير البيئة SSH_AUTH_SOCK على مستوى العالم سيساعد أيضًا - مع تكلفة المفاتيح التي يمكن الوصول إليها من قبل كل تطبيق ...

"you'll need to launch VS Code from a Git Bash prompt to inherit its SSH environment."

من أكثر الأشياء التي سمعتها متواضعة من Microsoft ؛ لا يجب أن أبدأ VS Code من سطر أوامر محدد لجعل ssh يعمل ؛ ربما تحاول تنفيذ حل مناسب.

تراكم؟ هل حقا؟

تسبب هذا الإصدار في التحول إلى powerhell و posh-git الذي يعمل جيدًا بشكل معقول. لكي يعمل وكيل ssh بسلاسة ، كان علي إضافة ما يلي إلى $profile.CurrentUserAllHosts (الافتراضي هو C:\Users\USERNAME\Documents\WindowsPowerShell\profile.ps1 ).

Import-Module posh-git
Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe"
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe"
Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe"
Start-SshAgent -Quiet

إذا تمكن الآخرون من تأكيد ذلك ، فإنني أقترح إغلاق هذا الموضوع نظرًا لأن وثائق VS Code الرسمية تنص بالفعل صراحةً على أنها ستعمل فقط مع عبارات المرور عن طريق إطلاق VS Code من git-bash.

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

بناءً على ما اقترحه الآخرون أعلاه ، قمت للتو بإنشاء ملف نصي باش (على سبيل المثال projectName.sh ) وكتبت فيه ما يلي:
"location/to/Code.exe" "location/to/project"

الآن كل ما علي فعله هو النقر نقرًا مزدوجًا على الملف لفتح VSCode والعمل بشهادة مع عبارة مرور.

راجع للشغل: في حالة مساعدة الآخرين الذين يتعثرون في هذه المشكلة ، كان علي أيضًا: git config --global http.sslBackend schannel كما هو موضح هنا .

أنا في حيرة من أمره ، بعد عامين طويلين ، أن شيئًا أساسيًا مثل "العمل مع git باستخدام ssh باستخدام مفتاح يحتوي على عبارة مرور" لم تتم معالجته بعد بدون استخدام الحلول ذات المظهر القبيح. VSCode هو محرر IMHO رائع ، ولكن هذه "الميزة" مطلوبة حقًا. يرجى إعطاء الأولوية لذلك

هذه مقالة قديمة ألقيتها على stackoverflow والتي قد تكون مفيدة ؛ أحد الخيارات هو استخدام Windows Credential Manger: https://stackoverflow.com/questions/35110079/git-bash-pageant-not-using-keys/43313491#43313491

أعتقد أن السؤال هو ما إذا كان يجب أن يكون VSCode مسؤولاً عن التعامل مع بيانات اعتماد SSH / HTTPS كمدير مخزن مفاتيح أم لا. يبدو أنه يجب التعامل مع هذا من خلال نظام التشغيل ، أو برنامج جهة خارجية ، أو التكوين المناسب لـ git الذي يندمج مع النقطتين الأوليين.

بقدر ما أحب صوت هذه الميزة ، يبدو بالفعل أنه يجب أن يكون لدى Unix و Windows طرق للتعامل مع هذه المشكلة دون إضافة هذا إلى VSCode.

لست متأكدًا مما إذا كان أي شيء هنا في مقالات github هذه يساعد إما: https://help.github.com/articles/connecting-to-github-with-ssh/
في النهاية ، يبدو أنهم يطلبون منك استخدام bash على windows / بديل آخر لـ bash windows ، والذي يعيد الأشخاص بعد ذلك إلى نفس المشكلة بحل بديل: \

ctsstc نعم ، لقد قمت بتثبيت Git Credentials Manager لنظام التشغيل Windows ، ولكن لسبب ما ، لا يعمل. أدرك أن هذا قد لا يكون مسؤولية VSCode. على سبيل المثال ، في Android Studio و IDEs المستندة إلى IDEA ، يهتمون فقط باستدعاء git binary ، والتكامل الوحيد لديهم هو عندما تتطلب العملية عبارة مرور ، يستمر IDE في الحفاظ عليها بشكل آمن ويمررها إلى Git - ربما هذا هو مقاربة جيدة. ربما هذا هو الشيء الوحيد الذي فقدوه؟

ctsstc لا أوافق بشدة ، لا يمكنك تنفيذ واجهة مستخدم لبرنامج CLI - مما يعني GIT في هذه الحالة - ثم تدعي أنه عندما يحتاج البرنامج إلى إدخال لم يعد مشكلتك ؛ إذا كنت لا تريد أن يعتمد الأشخاص على VC لاستخدام git ، فلا يجب أن يكون لديك برنامج git متكامل منذ البداية ، ولا تستخدم برامج نصف الحمار خاصة إذا كان من المفترض أن يتم نسخها احتياطيًا بواسطة Microsoft ، وخاصةً ليس نصفها - اجتياز أفضل الممارسات الأمنية منذ عقود مثل مفاتيح SSH مع عبارات المرور.

أعتقد أن النقطة المهمة هنا هي أن Atom سيتذكر عبارات مرور SSH لـ git repos. بالتأكيد يمكن لـ vscode أن يفعل الشيء نفسه لأن كلاهما يعتمد على نفس محرك التحرير؟

أعتقد أن السؤال هو ما إذا كان يجب أن يكون VSCode مسؤولاً عن التعامل مع بيانات اعتماد SSH / HTTPS كمدير مخزن مفاتيح أم لا.

لا أعتقد أنه ينبغي ذلك ، لكنني أيضًا لا أعتقد أن هذا هو المطلوب هنا. كما أشار Ivanca ، اختارت VSC تقديم واجهة مستخدم أعلى git ، لذا فإن السؤال هو مقدار وظيفة git التي يجب الكشف عنها من خلال واجهة المستخدم تلك. لا أتوقع أن تكون كل عملية git غامضة متاحة من خلال VSC ، ولكن السحب / الدفع أساسيان - لا أعتقد أن VSC يمكن أن تدعي أنها تدعمها بالكامل دون توفير غراء واجهة المستخدم لتحدي عبارة المرور الأساسي.

لذا فإن النتيجة المتوقعة هي جعلها تطالب بكلمة المرور. أعتقد أن هذا سؤال / ميزة معقولة.

بدلاً من إظهار:

Permission denied, please try again.
Permission denied (publickey,password).

أشعر أنني رأيت هذه الوظيفة مؤخرًا على نظام Mac منذ بضعة أيام ، ولكن ربما لم يتم تنفيذها على Windows ، أو ربما كانت تطلب كلمة مرور النظام للوصول إلى مخزن مفاتيح النظام.

تحرير ، جرب هذا للتو على Mac:

image

لذلك يبدو أن هذا مدعوم على نظام التشغيل Mac وليس Windows (أفترض أن هذه المشكلة لا تزال موجودة) ، لذا فإن الميزة هي أن يكون هناك تكافؤ بين نظامي التشغيل.

أي تحديثات على هذا؟ لقد مر عامان منذ الإبلاغ عن هذه المشكلة ولا يزال يتعذر على VSCode العمل مع Git SSH:
image

هل جرب أي شخص أيًا من هذه على Windows؟

ctsstc يمكنني التأكد من أنه يعمل في نظام Mac في علامة التبويب الطرفية. ما ينقصه هو المطالبة بعبارة مرور عند استخدام وظائف السحب / الدفع من واجهة المستخدم الرسومية. إنه يتجاهل فقط حقيقة أن لديك عبارة مرور على مفتاحك ويقدم كلمة مرور خالية / لا شيء مما يؤدي إلى فشل عملية git.

أعتقد اعتقادًا راسخًا أنه يجب معالجة هذا الأمر ، بغض النظر عما إذا كان VSC يقرر تخزين بيانات اعتماد عبارة المرور مؤقتًا. لا تفشل عندما يكون هناك عبارة مرور على مفتاح rsa ، اطلب المفتاح.

متى سيحدث هذا؟

هل سيتم إصلاح هذا؟ نفس المشكلة على النوافذ

لا يبدو متفائلا. استسلمت وتحولت من SSH إلى https.

عملي الحالي: عادةً ما يكون لديّ محطة طرفية مفتوحة في VSCode على أي حال (استخدمها للتفاعل مع npm ، وما إلى ذلك) ، لذلك أقوم فقط بعمل git push من هناك. لا يجب أن يعمل هذا ، ولكنه على الأقل يطالبني بكلمة المرور الخاصة بي.

في نظام macOS ، أضفت هذا إلى ~/.ssh/config في النهاية (وهو أمر مهم ، لا تضع أي شيء أدناه):

Host *
   AddKeysToAgent yes
   UseKeychain yes 

ثم قمت بعمل git pull لذلك سيطلب macOS كلمة مرور ssh الخاصة بي. بعد ذلك ، لا يسألني macOS أبدًا عن كلمة المرور مرة أخرى ، لذلك يعمل التحكم في إصدار VSCode كما ينبغي.

أتمنى أن يساعد شخص ما.
في صحتك!

الحلول الأخرى:

  • استخدم plink from putty بدلاً من ssh كأمر git ssh ، ثم استخدم pageant لتحميل المفاتيح
  • استخدم git عبر http / https بدلاً من git over ssh

هل جرب أي شخص أيًا من هذه على Windows؟

https://github.com/PowerShell/openssh-portable

أستخدم win32-openssh ، كما هو مذكور أعلاه ، الحل البديل عن طريق دفع git من المحطة الطرفية. يعد عدم التعرف على مسارات ssh: // مشكلة قمت بتقديمها بالفعل ومرتبطة بهذا. حالة الاستخدام الرئيسية الخاصة بي هي استخدام امتداد sshfs الذي لا يعمل مع git وامتدادات أخرى مثل python لأنهم لا يعرفون كيفية تفسير ssh: //

هل هناك أي خطة لدعم هذا؟

هذا لا يزال يمثل مشكلة. الحلول ليست خيارًا للجميع ؛ على سبيل المثال ، يمكن (من المحتمل) الوصول إلى جهازي بواسطة الآخرين ، وبالتالي لن أقوم بإلغاء قفل مفتاحي. في حالتي ، يسأل git في سطر الأوامر ببساطة عن كلمة المرور ، وأقول أن VS Code يجب أن يفعل الشيء نفسه في نافذة منبثقة.

في الواقع ، لقد صدمت هذه الميزة بعد عامين ، وما زلت أتساءل لماذا لم يتم التقاطها وتحديد أولوياتها.

يتم حاليًا استخدام إصدار VSC 1.34.0
qwe
ولم يتم إصلاح المشكلة.

ما زلت أواجه هذه المشكلة هنا أيضًا ، على Windows 10. تخلصت من Putty الآن بعد أن تم تضمين OpenSSH في Windows 10 ، ولكن يبدو أن VS Code لا تحترمه؟ لا بد لي من الدفع والسحب يدويًا عبر الجهاز الطرفي في VSCode ، والذي يعمل بشكل جيد ، لكنني أحببت أن أكون قادرًا فقط على النقر فوق زر للمزامنة.

@ arcs- من غير المحتمل أن يتم إصلاح هذا نظرًا لأن git لا يوفر طريقة للتفاعل مع عملية SSH الرئيسية التابعة. إذا كان بإمكان الآخرين الوصول إلى جهازك ، فقم بقفله عندما تكون بعيدًا عن مكتبك. بخلاف ذلك ، يمكنك بدء تشغيل وكيل ssh إما في macOS أو Windows للتغلب على هذه المشكلة كما هو موضح هنا: https://help.github.com/en/articles/working-with-ssh-key-passphrases

@ flaw600 يبدو أن هذه العملية تساعد فقط إذا قمت بتشغيل الكود من نفس نافذة git-bash حيث تمت تهيئة وكيل ssh ، وهو أمر صعب بعض الشيء ويمنع استخدام ملحقات النقر بزر الماوس الأيمن على المستكشف الذي يستخدم كثيرًا.

يبدو أن حقيقة مرور أكثر من 3 سنوات وما زال هذا الرابط قابلاً للتطبيق أمر مؤسف.
https://nathan.alner.net/2015/08/24/vs-code-ide-with-passphrased-git-ssh-keys/

فتح code عبر قائمة البداية يتجاهل عامل ssh ويفشل في السحب / الدفع.

أي اقتراحات؟ إنها نقطة مؤلمة كبيرة لإجراء التطوير الآن مقابل الأنظمة الأساسية الأخرى.

كان استخدام https هو الحل الأفضل لبعض الوقت. كل جزء منه آمن ، إن لم يكن أكثر من ذلك ، حيث يمكنك إنشاء رموز محددة للوصول. يعتني مدير بيانات اعتماد Windows SCM بكل شيء تلقائيًا.

كمكافأة ، أنا متأكد من أن HTTPS في الواقع أسرع من SSH.

gdamore : أي إشارات مرجعية تدعم ادعائك بأن HTTPS كذلك
أسرع من SSH؟

في يوم الإثنين 17 يونيو 2019 الساعة 11:45 ، كتب gdamore [email protected] :

كان استخدام https هو الحل الأفضل لبعض الوقت. كل بت مثل
آمن ، إن لم يكن أكثر من ذلك ، حيث يمكنك إنشاء رموز محددة للوصول.
يعتني مدير بيانات اعتماد Windows SCM بكل شيء تلقائيًا.

كمكافأة ، أنا متأكد من أن HTTPS في الواقع أسرع من SSH.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/microsoft/vscode/issues/13680؟
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AFLBAEOC5BVCGGJ7EDXTINTP265Q7ANCNFSM4CSXV3PQ
.

ليس مع git تحديدًا ، ولكن في الاستخدامات الأخرى (نسخ الملفات الكبيرة) ، رأينا ذلك. أعتقد أنه يتعلق حقًا بالأشياء التي تم تعيينها في طبقة TCP حيث يبدو أن SSH يحتوي على قيم أكثر ملاءمة للاستخدام التفاعلي ، بينما يميل HTTP إلى أن يكون أكثر ملاءمة لنقل الملفات بالفعل ، وهو ما يفعله git في هذه الحالة.

أكره قول هذا ، لكنه بدأ يعمل معي بطريقة سحرية. لست متأكدًا مما إذا كان قد بدأ تشغيل SSH من خلال Powershell أو CMD - ليس لدي أي فكرة! مجرد حفنة من المحاولة ثم نجحت بطريقة سحرية.

على نظام التشغيل Windows ، يمكنك استخدام pageant كوكيل SSH الخاص بك ثم تعيين متغير env GIT_SSH إلى plink . تعد هاتان الأداتان جزءًا من PuTTY وأيضًا مجمعة مع TortoiseGit.

لا يفيدني على ماك

في يوم الأربعاء ، 3 يوليو 2019 ، 11:44 صباحًا ، كتب Justin [email protected] :

على نظام التشغيل Windows ، يمكنك استخدام المسابقة كعامل SSH الخاص بك ثم تعيين البيئة
متغير GIT_SSH ليغمض. كلتا الأداتين جزء من PuTTY وأيضًا
مرفق مع TortoiseGit.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/microsoft/vscode/issues/13680؟email_source=notifications&email_token=AFBZHXFVMRQ4DBPV2TLBBGTP5TJN7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43TUL52HS4DFVREXG43
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AFBZHXD63DGD5FUXRJYMLXDP5TJN7ANCNFSM4CSXV3PQ
.

يعمل @ Jazun713 mac بشكل جيد: https://github.com/microsoft/vscode/issues/13680#issuecomment -473190878

لماذا لا يزال هذا شيء؟

رائع ، لذلك بعد 3 سنوات لا يزال من غير الممكن توصيل كود VS عبر ssh ، على الأقل لبدء تشغيله من سطر الأوامر

حسنًا ، لم أتجاوز عبارة المرور لأنني لم أقم بتعيينها ، ولكن بطريقة ما تمكنت من تعيين VSCode على الأقل لاستخدام ssh بمجرد فتحه كجذر (أو بواسطة Windows كمسؤول). هذا بعد أن قمت بتثبيت Openssh أو في Windows قمت بإعداد الاتصال مع Putty. بعد أن أتحقق من تكوين ssh وتثبيته ، كإرشادات هنا https://help.github.com/en/articles/testing-your-ssh-connection . يرجى الرجوع إلى هذا أيضًا ، فهو يعطي العديد من الأفكار المفيدة حيث تعتمد كل حالة على كيفية تعيين وكيل ssh ونظام التشغيل (أنا أقوم بتشغيل Ubuntu 18.04) https://help.github.com/en/articles/ خطأ - إذن - رفض - publickey

باستخدام الإصدار 1.36.1 ، لا يزال يتعذر الاتصال بـ Github عبر SSH باستخدام عبارة مرور - اضطررت إلى إزالة عبارة المرور من مفتاحي. ما الصعوبة؟ باستخدام HTTPS ، تسأل عن مستخدم git وكلمة المرور ... (عدة مرات ، ولهذا السبب لا أرغب في استخدامها).

هذا نوع من المزعج. يؤدي استخدام كلمة مرور مع مفتاح SSH إلى تعزيز الأمان الجيد. إنه تقنيًا شكل من أشكال 2FA (ما لديك: المفتاح + ما تعرفه: كلمة المرور). أنا أستخدم هذا المحرر على نظام MacOS ومن المزعج حقًا الانتقال إلى وحدة التحكم لجميع عمليات git. VS Git UI تفشل فقط. يجب أن يظهر إدخال كلمة المرور

في نظام macOS ، أضفت هذا إلى ~/.ssh/config في النهاية (وهو أمر مهم ، لا تضع أي شيء أدناه):

Host *
   AddKeysToAgent yes
   UseKeychain yes 

ثم قمت بعمل git pull لذلك سيطلب macOS كلمة مرور ssh الخاصة بي. بعد ذلك ، لا يسألني macOS أبدًا عن كلمة المرور مرة أخرى ، لذلك يعمل التحكم في إصدار VSCode كما ينبغي.

أتمنى أن يساعد شخص ما.
في صحتك!

ما سبق يعمل بالنسبة لي. ربما يمكن إدخال ملاحظة هنا: https://code.visualstudio.com/docs/setup/mac

سيكون هذا أمرًا رائعًا للحصول على حل أو حل مناسب على Windows.

يتمثل "الحل المناسب" في استخدام عناوين HTTPS URLs بدلاً من SSH ، جنبًا إلى جنب مع مدير بيانات الاعتماد git-scm. يعمل بشكل مثالي بالنسبة لي.

تم الإرسال من Mail لنظام التشغيل Windows 10

من: كاي ريتشاردسون
تاريخ الإرسال: الأربعاء 28 أغسطس 2019 الساعة 9:33 صباحًا
إلى: microsoft / vscode
نسخة إلى: غدامور ؛ أشير
الموضوع: Re: [microsoft / vscode] دعم git بكلمة مرور المفتاح الخاص (# 13680)

سيكون هذا أمرًا رائعًا للحصول على حل أو حل مناسب على Windows.
-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بكتم صوت الموضوع.

gdamore هذا ليس هو الحل الصحيح. هذه المشكلة خاصة لاستخدام بروتوكول SSH. قد يستخدم بعض الأشخاص خادم Git حيث لا يسمح المسؤولون على وجه التحديد بعمليات http (s) Git ، لذا فإن إخبارهم باستخدام https لا يقدم أي حل لهم.

@ Kai-Richardson إنه يعمل على Windows إذا قمت بتكوين Git لاستخدام أمر SSH يدعم وكيل SSH وفتح المفتاح في هذا الوكيل.

  1. TortoiseGit: اضبط متغير env GIT_SSH على TortoiseGitPlink.exe في مجلد تثبيت TortoiseGit ، قم بتحويل المفاتيح الخاصة إلى تنسيق PPK باستخدام puttygen.exe ثم افتح المفاتيح الخاصة بـ pageant.exe . يمكنك استخدام PuTTY بدلاً من TortoiseGit ، في هذه الحالة قم بتعيين GIT_SSH إلى plink.exe واستخدم المعجون / المسابقة.
  2. قم بتثبيت MS OpenSSH الرسمي ( الرابط ، أستخدم chocolatey مع تمكين ميزة وكيل SSH) ، وابدأ خدمة وكيل ssh ، وافتح المفتاح الخاص بـ ssh-add <path to key file> ، وقم بتعيين متغير env GIT_SSH إلى ssh.exe (عادةً C:\Program Files\OpenSSH-Win64\ssh.exe ). مشكلتي الوحيدة هنا هي بعد الإصدار 8.0 ، يبدو أن هناك مشاكل في قراءة المفاتيح الخاصة مع التنسيق التقليدي (تنسيق -----BEGIN RSA PRIVATE KEY----- ، بدلاً من تنسيق -----BEGIN OPENSSH PRIVATE KEY----- ).

تم تحديث كود الاستوديو المرئي الخاص بي ، ولم يعد بإمكانه التفاعل مع جيثب الخاص بي من خلال التطبيق. الإصدار 1.37.1

نظام التشغيل: Windows 10 Pro: الإصدار: 10.0.17134 Build 17134

هل فريق MS يكره SSH فقط؟

أي IDE يدعم بالفعل رموز مرور SSH؟ لأن منتجات Jetbrains ليست كذلك. لذلك لديك 2 من أفضل 3 بائعين لا يدعمون رموز مرور SSH محليًا (والآخر - Github - لا أعرف ما إذا كان محرر Atom الخاص بهم يدعم رموز مرور SSH أصلاً).

في 29 آب (أغسطس) 2019 ، الساعة 8:43 مساءً ، كتب كريس ميغوت [email protected] :

تم التحديث بواسطة رمز الاستوديو المرئي ، ولم يعد بإمكانه التفاعل مع جيثب الخاص بي من خلال التطبيق. الإصدار 1.37.1

هل فريق MS يكره SSH فقط؟

-
أنت تتلقى هذا لأنه تم ذكرك.
الرد على هذا البريد الإلكتروني مباشرة، مشاهدته على جيثب https://github.com/microsoft/vscode/issues/13680؟email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA#issuecomment-526421988 ، أو كتم موضوع https://github.com/notifications/ إلغاء الاشتراك - المصادقة / ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

هل فعلت أي خطأ؟ أنا فقط أقوم بتشغيل Kali Linux كتمهيد مزدوج على Windows

  1. سار كل شيء بشكل جيد ومثالي بعد عملية طويلة ولكن بطريقة ما
    الجهاز متصل بـ git الذي يتم إرفاقه ووضع علامة عليه معًا وعندما أحاول ذلك
    احصل على الطريق. Booommmmm يتم سحب العديد من الملفات إلى محرك الأقراص الثابتة ... ماذا
    يحدث ؟؟؟؟

برنس KK301088

في السبت ، 31 أغسطس 2019 ، الساعة 8:59 صباحًا ، flaw600 ، كتب [email protected] :

أي IDE يدعم بالفعل رموز مرور SSH؟ لأن منتجات Jetbrains
لا. إذن لديك 2 من أفضل 3 بائعين لا يدعمون SSH
رموز المرور محليًا (والآخر - Github - لا أعرف ما إذا كانت ملفات
يدعم محرر Atom رموز مرور SSH في الأصل).

في 29 آب (أغسطس) 2019 الساعة 8:43 مساءً ، أرسل كريس ميجوت إخطارات github.com
كتب:

تم التحديث بواسطة رمز الاستوديو المرئي ، ولم يعد بإمكانه التفاعل مع جيثب الخاص بي
من خلال التطبيق. الإصدار 1.37.1

هل فريق MS يكره SSH فقط؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، قم بعرضه على GitHub <
https://github.com/microsoft/vscode/issues/13680؟email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVM88
أو كتم صوت الموضوع <
https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ
.

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/microsoft/vscode/issues/13680؟email_source=notifications&email_token=AH4ENDPM4O6N2MT3BFLXGRTQHG66NA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VM3TUL52HS4DFVREXG43VM66
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AH4ENDORTBRU3GTGOWJFOVLQHG66NANCNFSM4CSXV3PQ
.

أي IDE يدعم بالفعل رموز مرور SSH؟ لأن منتجات Jetbrains ليست كذلك. لذلك لديك 2 من أفضل 3 بائعين لا يدعمون رموز مرور SSH محليًا (والآخر - Github - لا أعرف ما إذا كان محرر Atom الخاص بهم يدعم رموز مرور SSH أصلاً).

هناك سلسلة رسائل مكررة حول نفس المشكلة ، قال أحدهم إن Atom يدعم رموز مرور مفتاح SSH أصلاً: https://puu.sh/B7qHY/57f3c89f47.png

الرابط محمي بالمفتاح

مرسل من الايفون الخاص بي

في 16 سبتمبر 2019 ، الساعة 1:32 مساءً ، كتب vitasam [email protected] :

أي IDE يدعم بالفعل رموز مرور SSH؟ لأن منتجات Jetbrains ليست كذلك. لذلك لديك 2 من أفضل 3 بائعين لا يدعمون رموز مرور SSH محليًا (والآخر - Github - لا أعرف ما إذا كان محرر Atom الخاص بهم يدعم رموز مرور SSH أصلاً).
...
في 29 آب (أغسطس) 2019 ، الساعة 8:43 مساءً ، كريس ميغوت @. * > كتب: تم ​​التحديث بواسطة رمز الاستوديو المرئي ، ولم يعد بإمكانه التفاعل مع جيثب الخاص بي من خلال التطبيق. الإصدار 1.37.1 هل فريق MS يكره SSH فقط؟ - أنت تتلقى هذا لأنه تم ذكرك. الرد على هذا البريد الإلكتروني مباشرة، مشاهدته على جيثب <# 13680؟ email_source = الإخطارات وemail_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>، أو كتم موضوع https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ.

هناك سلسلة رسائل مكررة حول نفس المشكلة ، قال أحدهم إن Atom يدعم مفتاح SSH أصلاً: https://puu.sh/B7qHY/57f3c89f47.png

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بكتم صوت الموضوع.

مثير للاهتمام ، يمكنني فتح الرابط. مربع الحوار من Atom:
atom_ssh_key_pass

بصرف النظر عن إضافة إدخالات تكوين ssh أعلاه

إذا النوافذ

Set-Service ssh-agent -StartupType Automatic 

في بوويرشيل
الآن يجب ألا يطلب رمز vs ...

بصرف النظر عن إضافة إدخالات تكوين ssh أعلاه

إذا النوافذ

Set-Service ssh-agent -StartupType Automatic 

في بوويرشيل
الآن يجب ألا يطلب رمز vs ...

أحصل على خطأ في الإذن بهذه المحاولة. أي اقتراحات؟

Set-Service: لا يمكن تكوين خدمة 'OpenSSH Authentication Agent (ssh-agent)' بسبب الخطأ التالي: تم رفض الوصول
في السطر: 1 حرف: 1
+ Set-Service ssh-agent -StartupType Automatic
+ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
+ CategoryInfo: PermissionDenied: (System.ServiceProcess.ServiceController: ServiceController) [Set-Service] ، ServiceCommandException
+ FullyQualifiedErrorId: CanNotSetService ، Microsoft.PowerShell.Commands.SetServiceCommand

أحصل على خطأ في الإذن بهذه المحاولة. أي اقتراحات؟

seantma : يجب تشغيل PowerShell كمسؤول للحصول على الأذونات المطلوبة.

بصرف النظر عن إضافة إدخالات تكوين ssh أعلاه
إذا النوافذ
Set-Service ssh-agent -StartupType Automatic

في بوويرشيل
الآن يجب ألا يطلب رمز vs ...

لم يساعد ذلك في حالتي ، حيث أعاد VCode الأخطاء التالية ، عندما كنت أحاول مزامنة الالتزام المحلي مع الأصل (عن بُعد):

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

يبدو أن VCode لا يستخدم التكوين GIT العالمي (الاسم والبريد الإلكتروني) ، هل يمكن أن يكون؟

فعلت هذا وعملت (لم تختبر باستخدام مفتاح ssh مع عبارة المرور):

  • افتح محطة طرفية جديدة داخل Visual Code ، واختر مجلد المشروع الحالي إذا طُلب منك ذلك
  • سيفتح VS محطة مع Poweshell
  • قم بتشغيل ssh-keygen.exe -> أدخل ، أدخل ، أدخل ..... -> المفتاح الذي تم إنشاؤه في .ssh في مجلد المستخدم (عادةً في C: \ Users \)
  • انسخ محتوى المفتاح (.ssh / id_rsa.pub) وأضفه إلى مفتاح جديد في إعدادات Github

هذا هو

هذا ليس الحل المناسب ، @ leductan-nguyen. لا تتعلق هذه المشكلة على وجه التحديد بالمفاتيح المحمية بكلمة مرور ، ولكنها أيضًا لن تعمل إذا كان لديك مفاتيح متعددة (لدي واحد لـ GitHub وآخر لـ GitLab على سبيل المثال).

أي تقدم مع هذا؟

Badbreaddead ، تم نشر العديد من الحلول أو الحلول البديلة أعلاه. يعتمد ذلك على نظام التشغيل الذي تستخدمه:

OS X

تابع @ dschu-المختبر حل وإضافة

Host *
   AddKeysToAgent yes
   UseKeychain yes 

إلى _very end_ ~/.ssh/config . إذا لم يكن لمفتاح ssh اسمًا قياسيًا ، فقد تحتاج أيضًا إلى تحديده بـ IdentityFile /path/to/your/ssh/private/key كما أشار آخرون.
سيُطلب منك بعد ذلك إضافة عبارة المرور الخاصة بك في المرة الأولى التي تستخدمها فيها وسيتم تخزينها بعد ذلك في Keychain لأي استخدامات لاحقة.

لينكس

قم بتثبيت keychain ، على سبيل المثال عبر sudo apt install keychain ، كما هو موضح أعلاه @ Silentz0r . ثم قام بتنفيذ keychain --eval <ssh-key-name> ، لكن يبدو أن keychain <path-to-ssh-key> له نفس التأثير. يجب أن تؤدي إضافة إما إلى .bashrc أو ما يعادلها.

شبابيك

geordanr الصورة الحل هو واحد فقط التي عملت بالنسبة لي. نفّذ الأوامر التالية في Git Bash لإضافة مفتاح ssh إلى الوكيل وتشغيل التعليمات البرمجية في نفس الجلسة:

$ eval `ssh-agent`
$ ssh-add /path/to/key
$ code

إذا كنت تريد أن تنقذ نفسك من كتابة الأمرين الأولين في كل مرة ، يمكنك أيضًا إضافة شيء مثل

#use fix path for SSH_AUTH_SOCK so it works more then one instance of gitbash
export SSH_AUTH_SOCK="$TEMP/ssh_agent_socket"

ps | grep ssh-agent > /dev/null
RUNNING=$?;

if [ "$RUNNING" -eq "1" ] 
then
# ssh-agent is not yet running
    eval `ssh-agent -a $SSH_AUTH_SOCK`
fi
ssh-add 

إلى ملف ~/.bashrc في Git Bash لبدء وكيل ssh تلقائيًا (مأخوذ من هنا وتعديله قليلاً). إذا لم يكن للمفتاح اسمًا قياسيًا ، فستحتاج إلى تحديد المسار إليه بعد ssh-add ، على سبيل المثال ssh-add ~/.ssh/id_rsa_personal_key .

أي IDE يدعم بالفعل رموز مرور SSH؟ لأن منتجات Jetbrains ليست كذلك. لذلك لديك 2 من أفضل 3 بائعين لا يدعمون رموز مرور SSH محليًا (والآخر - Github - لا أعرف ما إذا كان محرر Atom الخاص بهم يدعم رموز مرور SSH أصلاً).
...
في 29 آب (أغسطس) 2019 ، الساعة 8:43 مساءً ، كريس ميغوت @ . * > كتب: تم ​​التحديث بواسطة رمز الاستوديو المرئي ، ولم يعد بإمكانه التفاعل مع جيثب الخاص بي من خلال التطبيق. الإصدار 1.37.1 هل فريق MS يكره SSH فقط؟ - أنت تتلقى هذا لأنه تم ذكرك. الرد على هذا البريد الإلكتروني مباشرة، مشاهدته على جيثب <# 13680؟ email_source = الإخطارات وemail_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>، أو كتم موضوع https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

تدعم PyCharm مفتاح ssh الخاص بي مع عبارة المرور دون أي مشكلة ، وقد طلبت مني عبارة المرور مرة واحدة وليس مرة أخرى وتعمل جميع وظائف git كما هو متوقع.

نفّذ الأوامر التالية في Git Bash لإضافة مفتاح ssh إلى الوكيل وتشغيل التعليمات البرمجية في نفس الجلسة:

$ Eval ssh-agent
$ ssh-add / path / to / key
كود $

مقابل ما يستحق ، يعمل هذا على Linux أيضًا - وليس هناك حاجة لإطلاق code عبر المحطة. سيكون الاختصار جيدًا أيضًا. يمكن إغلاق المحطة نفسها بعد هذه الأوامر مباشرة.

أعرف حلًا آخر على الأقل:

قم بتثبيت ssh-askpass (على Arch Linux يتم توفير ذلك من خلال كل من x11-ssh-askpass وأيضًا حزم seahorse ، والثنائيات موجودة في /usr/lib/ssh/ssh-askpass و /usr/lib/seahorse/ssh-askpass على التوالي). كل ما تحتاجه هو تثبيت إحدى هذه الحزم. سيطلق VS Code مربع حوار كلمة المرور في كل مرة يكون ذلك مطلوبًا.

ما عليك سوى إضافة هذه المفاتيح أدناه إلى بيئتك:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

كان من الممكن أن أقسم أن هذا كان في يناير 2020 . 😕

الإضافة إلى هذا https://github.com/microsoft/vscode/issues/13680#issuecomment -559013132

نظرًا لأن bash يطالبك عند كل تسجيل دخول لإدخال كلمة المرور الخاصة بك ، يمكنك ربط تشغيل VSCode في اختصار من خلال bash. بالنسبة للأيقونة ، ما عليك سوى استخدام الرمز الذي يأتي مع VSCode ، على الأرجح ضمن٪ LOCALAPPDATA٪ \ Programs \ Microsoft VS CodeCode.exe

إذا كان لديك بالفعل وكيل ssh قيد التشغيل ، فسيتم تشغيل الكود على الفور. إذا لم يكن الأمر كذلك ، فسوف ينتظر منك إدخال عبارة المرور الخاصة بك.

image

أود المساعدة في هذا. إنه أحد الأشياء القليلة التي ما زلت أتمنى أن يفعلها VSCode ، ولكن حتى بدونها ، لا يهم ، ما زلت أستمتع حقًا باستخدام VSCode ، لذا شكرًا!

هل تعلم أن Git-for-Windows يأتي مع برنامج نصي يسمى start-ssh-agent ، وهو موجود في مجلد cmd ، والذي يضاف عادةً إلى مسار المستخدم في تثبيت قياسي لـ Git-for-Windows. ربما هناك طريقة لاستخدام هذا لحل هذه المشكلة؟

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

أيضًا ، كإضافة مضافة ، إذا كان المستخدم قد بدأ بالفعل وكيل ssh ، فعادة ما يعثر عليه البرنامج النصي ، ويستخدم الوكيل الحالي فقط ، لذلك لا يلزم وجود عبارة مرور.

شكر!

https://github.com/microsoft/vscode/issues/13680#issuecomment -525861890 عملت أيضًا معي ، لكنها ليست واضحة جدًا ، وتعقد الأمور إذا كنت تستخدم أيضًا Git لنظام التشغيل Windows git و bash.

ما وجدته عن المشكلة وملخص الحلول الممكنة

المشكلة الرئيسية في Windows + Git for Windows (GfW) + VSCode + SSH git repo هي:

  • إذا لم تقم بتشغيل وكيل Windows أو GfW ssh من قبل (أو لم يكن لديك مساعد / خدمة تقوم بذلك) ، فلا يبدو أنه قادر على تشغيل وكيل ssh و ssh-add. ربما لا تكون مسؤولية VSCode ، ولكن من الجيد معرفة أن ssh لا يعمل.
  • إذا قمت بتشغيل وكيل GfW ssh من خلال .bashrc ، وإذا قمت بتشغيل VSCode من قائمة ابدأ / الاختصار وليس نفس الجلسة (مثل تشغيل code من cli) ، فلن يحصل VSCode الوصول إلى وكيل GfW ssh أيضًا.
  • إذا قمت بتشغيل إصدار Windows من وكيل ssh ، وتم تثبيت GfW ، فإن GfW لا يستخدم إصدار Windows من وكيل ssh افتراضيًا ، لأنه يأتي أيضًا مع إصداره الخاص من أدوات ssh. يبدو أن VSCode يستخدم بوابة GfW عندما يكون متاحًا ، لذلك قد يكون هذا هو السبب في عدم اكتشافه أن وكيل Windows ssh يعمل بالفعل (مع مفاتيح مضافة) ويستخدم ذلك.

الحل 2 جيد ، لكنه أيضًا ليس سريعًا جدًا ، فهذه هي الخطوات التي اتخذتها:

  1. قم بتثبيت OpenSSH Client ضمن الميزات الاختيارية
  2. أضف GIT_SSH في متغيرات البيئة ، مشيرًا إلى أدوات OpenSSH Client ، على الأرجح C: \ Windows \ System32 \ OpenSSHssh.exe
  3. قم بتبديل وكيل SSH المفتوح ضمن الخدمات إلى تلقائي (إذا كان معطلاً ، فقد كان خاصتي)
  4. قم بتشغيل ssh-add في PowerShell وسترى مفتاحك مضافًا
  5. يجب أن يكون VSCode الآن قادرًا على القيام بأمور git باستخدام SSH repo
  6. ومع ذلك ، لا يستخدم GfW git و bash هذا العامل (حاولت توجيه bash env GIT_SSH إلى أدوات Windows OpenSSH لكنهما يرفضان العمل معًا) ، ولذا عليك استخدام البرنامج النصي .bashrc لبدء الوكيل وإدخال عبارة المرور مرة أخرى عند بدء تشغيل GfW bash.

في الوقت الحالي ، ألتزم بالحل 1 ، لأنني أستخدم أيضًا أنظمة Mac و Linux ومن الجيد أن يكون لدي نفس أدوات bash / git / ssh في كل مكان.

حاولت ربط البرنامج النصي Git-for-Windows المسمى start-ssh-agent.cmd في مجلد cmd ، مع Code.exe في الاختصار كـ %COMSPEC% /C %LOCALAPPDATA%\Programs\Git\cmd\start-ssh-agent.cmd && "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" وهو يعمل ، لكنه يحتوي على هذا الجانب الغريب تأثير فتح مثيل ثانٍ من VSCode بعد الخروج من المثيل الأول ، لكني لا أعرف السبب.

إذا قمت بتنفيذ هذا الخط من محطة Windows (مع أو بدون %COMSPEC% /C ) فإنه يعمل بشكل جيد.

شيء آخر حاولت القيام به هو إنشاء ملف *.bat أو *.cmd بنفس الأمر مثل الاختصار ، لكنني فوجئت أنه لم يعمل. يبدأ VSCode ، ولكن لا يمكنه السحب / الدفع ، ويستجيب مع "رفض الإذن اللعين (المفتاح العام)." خطأ.

لقد أمضيت أيضًا بعض الوقت في البحث عن كود امتداد Git لكنني لم أتمكن من معرفة مكان إدخال البرنامج النصي لعامل ssh-start-agent ، من الناحية المثالية عندما يبحث عن إصدار Git ويجد أنه موجود على Windows ، مثل الأسطر 61-148 في git.ts نظرًا لأنه يتم تشغيله git --version ، يمكن أيضًا تشغيل cp.exec('start-ssh-agent.cmd') ولكن يجب أن يكون لديه طريقة للحصول على عبارة المرور من المستخدم.

أخيرًا ، ما استقرت عليه هو نسخ start-ssh-agent.cmd في ملف جديد يسمى vscode-ssh-agent.cmd واستبدال السطر الأخير حيث يستدعي CMD بـ <strong i="25">@call</strong> "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" . لكن لا يمكنني تثبيته على شريط المهام.

أحاول حاليًا تنفيذ هذه الميزة. لا يزال العمل قيد التقدم ، ولكن يجب أن يكون لدي علاقات عامة متاحة قريبًا.

في الوقت الحالي ، أبدأ وكيل ssh ، وأضف مفتاح المستخدم إذا تم تعيين git.sshPrivateKeyPath ، وأطلب من المستخدم إدخال كلمة مرور مفتاح SSH الخاصة به إذا طلب ذلك ، واستخدم متغيرات بيئة الوكيل لكل مكالمة git.
يبدو أن اختباراتي الأولى على جهاز Windows تعمل.

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

الإضافة إلى https://github.com/microsoft/vscode/issues/13680#issuecomment -583599355 منweiliddat ؛ أنا شخصياً أستخدم قائمة السياق "فتح باستخدام VSCode" (انقر بزر الماوس الأيمن على المجلد) واستخدمت ContextEdit لتحرير إدخال قائمة السياق عند فتح المجلدات باستخدام VSCode لتشغيله عبر Git Bash ، لذلك فإن VSCode لديه حق الوصول إلى سياق SSH.

  1. قم بتثبيت ContextEdit .
  2. قم بتشغيل ContextEdit كمسؤول
  3. ابحث عن "مجلد الملفات" في قائمة الامتدادات الطويلة.
    image
  4. انقر نقرًا مزدوجًا فوق إدخال "Open w & th Code" ضمن "أوامر Shell"
  5. قم بتغيير سلسلة سطر الأوامر إلى "C:\Program Files\Git\bin\bash.exe" -l -c "code '%V';exit" . تأكد من أن "C:\Program Files\Git\" يتوافق مع دليل تثبيت Git for Windows. قد ترغب في نسخ الأمر القديم في حال احتجت إلى إعادة التعيين.
  6. انقر فوق "موافق" و "خروج"

الآن ، إذا نقرت بزر الماوس الأيمن على مجلد "فتح باستخدام VSCode" ، فيجب أولاً تشغيل Git Bash ، وبعد ذلك فتح VSCode في المجلد الأيمن. إذا قمت بإعداد Git Bash بشكل صحيح لتشغيل وكيل SSH الخاص بك قبل بدء Git Bash ، فيجب أن يطالبك هذا بكتابة عبارة المرور مرة واحدة في كل مرة تقوم فيها بإعادة تشغيل جهاز الكمبيوتر الخاص بك. عند الفتح اللاحق ، يجب فتح VSCode مباشرةً وإعداد مفتاح SSH الخاص بك بالكامل.

لم أتمكن من العثور على إدخال ContextEdit عند النقر بزر الماوس الأيمن داخل مجلد في Explorer ، بدلاً من النقر بزر الماوس الأيمن مباشرة على المجلد نفسه.

هذا الحل يعمل مثل السحر.

ما عليك سوى إضافة هذه المفاتيح أدناه إلى بيئتك:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

ما عليك سوى إضافة هذه المفاتيح أدناه إلى بيئتك:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

https://github.com/microsoft/vscode/issues/13680#issuecomment -575204695
هذا يحلها! شكرا جزيلا!

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

على سبيل المثال ، إذا كنت تريد عدم استخدام GitBash لبدء VSCode كل مرة ( لأن هذا الهراء! IMHO ) ، فمن الممكن إضافة هذه باستخدام نافذة Environment Variables أو باستخدام أمر rundll32.exe sysdm.cpl,EditEnvironmentVariables (أي من خلال cmd.exe).

في النتيجة قد تبدو كما يلي:

الآن ، فقط أعد تشغيل (وليس إعادة التحميل) VSCode ويجب أن يعمل:

الشيء الطريف أنه يعمل حتى لو كان DISPLAY=WTHeck ، لذا فقد يبحث عن وجود هذا المتغير فقط.

لماذا لا تحدد هذه ( private key file path أو SSH_ASKPASS ) كقيمة تهيئة JSON مكان ما كحل بديل ، لذلك فإن VSCode ستلحق هذه عند بدء التشغيل بـ متغيرات بيئتها الداخلية؟

لست على دراية بكيفية عمل تطبيقات الإلكترون أو Windows ، لكن هل سيكون من الممكن تطوير غلاف حول هذا الحل ، لذلك عند تثبيت VSCode ، سيقوم تلقائيًا بتكوين هذه الإعدادات.

TBH بالنسبة لي لا يبدو أن هذا سيكون صعبًا للغاية لحل المشكلة ولكن بالنظر إلى كيفية استمرار هذه المناقشة لمدة 4 سنوات ، فمن المحتمل أن يكون هذا بمثابة وحش من المشكلة. سيكون من الرائع رؤية VSCode ينفذ شيئًا ما على الأقل حتى يتمكن المستخدمون من استخدام ميزة git القياسية دون الحاجة إلى القيام بالحلول البديلة الخاصة بهم. على الرغم من أنني أرى نقطة يجب توضيحها في تنفيذها بشكل صحيح في المرة الأولى.

شكرًا لك soufiene-slimi على الحل البديل الخاص بك وشكر F8ER على التوضيح. على الرغم من وجود تضارب في واجهة المستخدم ، إلا أنه يعمل على الأقل

ما عليك سوى إضافة هذه المفاتيح أدناه إلى بيئتك:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

هل من جديد هنا؟ لقد بدأت للتو العمل مع VSCode على WSL 2 و Git. ولأن VSCode يتجمد في كل مرة أحاول فيها دفع أو نشر شيء ما ، فقد جربته على الجهاز وعمل بشكل رائع لأنه كان لدي إمكانية إدخال عبارة المرور الخاصة بي.

هذه القضية قديمة جدًا ولديها الكثير من التعليقات. ربما يكون هناك حل بديل لطيف في مكان ما دون إزالة عبارة المرور من مفتاحي ، ودون حفظ المفتاح في مكان ما في التكوينات.

مرحبا شباب،

واجهت هذه المشكلة على جهاز Mac الخاص بي أيضًا.
لدي مفتاح RSA تم إعداده ويبدو التكوين الخاص بي هكذا

# GitLab.com
Host gitlab.com
  Preferredauthentications publickey
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

الشيء من محطة كود VS عندما أقوم بالضغط إلى الأصل باستخدام CLI ، فإنه يدفع الكود الخاص بي بنجاح مع مطالبة بإدخال كلمة مرور.
تنشأ المشكلة عندما أستخدم VScode GUI pull / push / sync الذي يعطيني

Please make sure you have the correct access rights
and the repository exists.
> git push -u origin v1.5_Testing
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

الاختلاف الوحيد هو أن واجهة المستخدم الرسومية لا تطالب بكلمة مرور وهذا هو السبب في أنني أفترض فشلها.

[email protected] : تم رفض الإذن (publickey).
...
الاختلاف الوحيد هو أن واجهة المستخدم الرسومية لا تطالب بكلمة مرور وهذا هو السبب في أنني أفترض فشلها.

mohammedpatla من فضلك ، تحقق من هذا .

هذا الحل مع متغيرات البيئة لا يساعدني. ليس لدي git مثبتًا على Windows ولكن على Ubuntu 20.04 يعمل على WSL2. لا يوجد في أي مكان دليل يسمى mingw64 أو ثنائي يسمى git-gui--askpass أي مكان.

لذلك أعتقد أيضًا أن الحل لا يعمل على جهاز Mac أيضًا ، @ F8ER .

لا يمكنني تشغيل VScode من خلال git-bash على Mac @ F8ER

هذا الحل مع متغيرات البيئة لا يساعدني. ليس لدي git مثبتًا على Windows ولكن على Ubuntu 20.04 يعمل على WSL2. لا يوجد في أي مكان دليل يسمى mingw64 أو ثنائي يسمى git-gui--askpass أي مكان.

لا يمكنني تشغيل VScode من خلال git-bash على جهاز Mac

هل تعلم ما هو Environment Variable ؟
NicolasGoeddel قد ترغب في التحقق من هذا الرابط من ubuntu.com .
mohammedpatla قد ترغب في التحقق من هذا الرابط من apple.com بدلاً

أيضا. من فضلك ، جرب Google أولاً . على سبيل المثال، غياب git-gui--askpass قد يعني أنه لا يوجد حزمة git-gui مثبت، وبالتالي، قد تحتاج تثبيته.

هذا الحل مع متغيرات البيئة لا يساعدني. ليس لدي git مثبتًا على Windows ولكن على Ubuntu 20.04 يعمل على WSL2. لا يوجد في أي مكان دليل يسمى mingw64 أو ثنائي يسمى git-gui--askpass أي مكان.

لا يمكنني تشغيل VScode من خلال git-bash على جهاز Mac

هل تعلم ما هو Environment Variable ؟
NicolasGoeddel قد ترغب في التحقق من هذا الرابط من ubuntu.com .
mohammedpatla قد ترغب في التحقق من هذا الرابط من apple.com بدلاً

أيضا. من فضلك ، جرب Google أولاً . على سبيل المثال، غياب git-gui--askpas قد يعني أنه لا يوجد حزمة git-gui المثبتة.

بالطبع أعرف ما هي متغيرات البيئة. ولكن لماذا يجب أن أقوم بتثبيت تطبيق GUI على جهاز Linux يعمل على WSL2 عندما لا يكون من الممكن تشغيل واجهة المستخدم الرسومية تلك؟ إنه غير ممكن على آلة مقطوعة الرأس. يرجى قراءة منشوراتي بعناية أكبر في المرة القادمة.

هذه الحيلة git-gui ليست الحل الصحيح في السيناريو الخاص بي. ولكن ربما يعمل على جهاز Mac إذا كان VSCode والمستودع يعملان أصلاً في نفس البيئة. ثم mohammedpatla عليه فقط تثبيت git-gui على نظامه ويحتاج إلى تغيير متغيرات البيئة.

بالطبع أعرف ما هي متغيرات البيئة. ولكن لماذا يجب أن أقوم بتثبيت تطبيق GUI على جهاز Linux يعمل على WSL2 عندما لا يكون من الممكن تشغيل واجهة المستخدم الرسومية تلك؟ إنه غير ممكن على آلة مقطوعة الرأس.
هذه الحيلة git-gui ليست الحل الصحيح في السيناريو الخاص بي.

لماذا تحاول تشغيل VSCode على جهاز غير واجهة المستخدم الرسومية إذن ، أو هل فاتني شيء ما؟
أيضا ، قد ترغب في التحقق من هذا .

يعمل جيدًا بالنسبة لي على جهاز Mac الخاص بي ، بغض النظر عن كيفية بدء تشغيل vscode ، ولكن لديّ وكيل ssh ممكّنًا ومتصلاً بسلسلة مفاتيح بيانات الاعتماد الخاصة بي حتى يبدأ تلقائيًا.

لم أحاول السحب / الدفع من WSL ، لكنني أستخدم اتصال اللقاح عن بُعد. أنا قادر على تشغيل تطبيقات الرجل من WSL باستخدام VcXsrv ولكن هذا غير ذي صلة.

هل بدأ وكيل ssh في WSL الخاص بك؟ ابدأ محطة WSL الخاصة بك وانظر إلى .bashrc أو .bash_prifile ، إذا كانت موجودة في المجلد الرئيسي. ثم أضف:

eval `ssh-agent`
ssh-add

ربما سيساعد ذلك ولكن ربما لا. عند استخدام wsl ، وجدت أن بعض الأشياء لا تعمل. احتفظ بمحطتك الطرفية مفتوحة وقم بمزامنة المستودعات التي حصلت عليها يدويًا

أعتقد أن هذا يذهب بعيدًا ، أليس كذلك؟ لدينا الحلول بالفعل. سيكون الحل المناسب هو مطالبة VS Code بكلمة المرور محليًا ، بنفس الطريقة التي يعمل بها بالفعل مع اسم المستخدم / المرور العادي.

/ cc @ alarr46 ، ماذا تقول؟

بالطبع أعرف ما هي متغيرات البيئة. ولكن لماذا يجب أن أقوم بتثبيت تطبيق GUI على جهاز Linux يعمل على WSL2 عندما لا يكون من الممكن تشغيل واجهة المستخدم الرسومية تلك؟ إنه غير ممكن على آلة مقطوعة الرأس.
هذه الحيلة git-gui ليست الحل الصحيح في السيناريو الخاص بي.

لماذا تحاول تشغيل VSCode على جهاز غير واجهة المستخدم الرسومية إذن ، أو هل فاتني شيء ما؟
أيضا ، قد ترغب في التحقق من هذا .
لقد أسأت فهمي. VSCode يعمل على Windows والتطبيق ومصادره التي أطورها تعمل على WSL 2.
لكن شكرا لرابطك. لم أكن أعرف شيئًا عن مشاركة بيانات اعتماد Git بين Windows و WSL. سأختبر ذلك.

من ناحية أخرى ، ranolfi على حق. كل هذا لا يزال حلولاً بديلة. سيكون من الأفضل إصلاح هذه المشكلة برمتها. :-)

نعم ، أتمنى أن يتم تطبيق هذا في VSCode ، أصلاً أيضًا. موجه سيكون موضع تقدير كبير.

ما عليك سوى إضافة هذه المفاتيح أدناه إلى بيئتك:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

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

ما عليك سوى إضافة هذه المفاتيح أدناه إلى بيئتك:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

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

أعتقد أن هذا يذهب بعيدًا ، أليس كذلك؟ لدينا الحلول بالفعل. سيكون الحل المناسب هو مطالبة VS Code بكلمة المرور محليًا ، بنفس الطريقة التي يعمل بها بالفعل مع اسم المستخدم / المرور العادي.

/ cc @ alarr46 ، ماذا تقول؟

فقط سأنتظر الإصدار الرسمي ، فقط سأستخدم Git-CLI حتى ذلك الحين.

أعتقد أن هذا يذهب بعيدًا ، أليس كذلك؟ لدينا الحلول بالفعل. سيكون الحل المناسب هو مطالبة VS Code بكلمة المرور محليًا ، بنفس الطريقة التي يعمل بها بالفعل مع اسم المستخدم / المرور العادي.

/ cc @ alarr46 ، ماذا تقول؟

أوافق ، هذا ما نفذته في طلب السحب هذا . لا يزال بحاجة إلى المراجعة بالرغم من ذلك.

أوافق ، هذا ما نفذته في طلب السحب هذا . لا يزال بحاجة إلى المراجعة بالرغم من ذلك.

بداية لطيفة للغاية ، مع ذلك. شكرا جزيلا! صاروخ.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات