كيفية الرد على موجه كلمة المرور عند استخدام SCP في برنامج نصي شل؟

StackOverflow https://stackoverflow.com/questions/1462284

سؤال

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

وأود أن scp كلها كلها ~/cs###/assign1 دير من محلي إلى المدرسة الرئيسية دير مع برنامج نصي شل. سؤالي هو، هل هناك طريقة في البرنامج النصي لانتظار موجه كلمة المرور، ثم محاكاة حدث لوحة المفاتيح "اكتب" في كلمة المرور الخاصة بي؟


هنا هو دليل مفصل حقا لكيفية إعداد المفتاح

هل كانت مفيدة؟

المحلول

هي مفاتيح SSH غير مسموح بها؟ سيكون ذلك حلا أفضل.

نصائح أخرى

استخدام "sshepass"!

#!/bin/bash
sshpass -p "password" scp -r /some/local/path user@example.com:/some/remote/path

لا أعتقد أنه يمكنك القيام بذلك بسهولة. ما أنت يمكن هل تستخدم مصادقة المفتاح العام بدلا من ذلك.

شيء على طول هذه الخطوط

ssh-keygen -t rsa
ssh school mkdir .ssh/
cat ~/.ssh/id_rsa.pub | ssh school "cat >>.ssh/authorized_keys"

(أو dsa).

ولكن مهلا، إنها ليست serverfault، هل هو؟ ؛-)

النظر في استخدام المفاتيح، أو مكتبة خارجية.

لا أعتقد أنه من الممكن خلاف ذلك (آمل أنني لست مخطئا)، لأنها تفرض اقتحام القوة الغاشمة التلقائية واستنشق كلمات المرور.

هناك مكتبات يمكنها القيام بما تريد (استخدم بروتوكول SFTP، وليس استدعاء SCP)، مثل libssh..

مرة أخرى، أوصي بشدة مفاتيح.

شيء من هذا القبيل - http://code.google.com/p/enchanter/ ?

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

إذا تمكنت من تثبيت الدليل من جهاز Windows (على سبيل المثال عن طريق AFS أو NFS أو SMB الذي فعله جميع Windows Labs في جامعتي)، يمكنك استخدامها PSCP. مع التبديل -pw.

لماذا لا تستخدم فقط خيار "-r" لنسخه بشكل متكرر؟ أو استخدام rsync بدلا من ذلك؟

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

أنت لا تقول أي منصة تستخدمها في المنزل وفي المدرسة. على افتراض Linux أو Cygwin أو OS / X لديك العديد من الخيارات:

  1. مصادقة المفتاح العام إذا لم يتم إيقاف تشغيلها عند الخادم
  2. الوكيل SSH و SSH- إضافة إلى إدخال كلمة المرور الخاصة بك مرة واحدة لكل جلسة

للخيار (1)، سوف

  1. توليد لوحة مفاتيح في المنزل باستخدام SSH-Keygen، مع عدم وجود عبارة مرور على المفتاح الخاص. لاحظ أن حذف عبارة المرور ليست فكرة جيدة إذا استخدم الأشخاص الآخرون نفس الكمبيوتر، لكن هدفك هو التجول في الاضطرار إلى كتابة كلمة المرور.
  2. قم بتحميل المفتاح العمومي لحساب مدرستك ووضعه في ~ / .ssh / authorized_keys
  3. استخدم SCP خيار "-I IditityFile"، حيث IditityFile هو المسار الكامل لمفتاحك الخاص. أو أضف إدخالا إلى .ssh / config (انظر صفحات الرجل)

للخيار الثاني، يسمح لك SSH-Agent بتخزين كلمة المرور الخاصة بك في عملية محلية مرة واحدة لكل جلسة. قمت بتعيين وقت انتهاء الصلاحية

كما قال الكثيرون بالفعل أن استخدام مفاتيح SSH ستكون الأكثر أمانا وأفضل طريقة. إذا كان أي شخص آخر لا يزال يتساءل حول المساعدة والبحث عن المساعدة، في Ubuntu المساعدة إلى الأمام بسرعة ومباشرة طريق لاستخدام مفاتيح SSH.

بمجرد إعداد ssh-keygen كما هو موضح هنا, ، يمكنك ان تفعل

scp -i ~/.ssh/id_rsa /local/path/to/file remote@ip.com:/path/in/remote/server/

أين id_rsa هو المفتاح المحلي الذي تم إنشاؤه في ssh-keygen اقامة.

إذا كنت ترغب في تقليل الكتابة في كل مرة، يمكنك تعديل الخاص بك .bash_profile ملف ووضع

alias remote_scp='scp -i ~/.ssh/id_rsa /local/path/to/file remote@ip.com:/path/in/remote/server/

ثم من محطة الخاص بك القيام به source ~/.bash_profile. وبعد بعد ذلك إذا كنت تكتب remote_scp في الطرف الخاص بك يجب أن يدير scp أمر بدون كلمة مرور.

لم أجد أي طريقة للقيام بذلك على أنظمتنا تلقائيا - أنا في جهاز واحد، ثم SSH إلى الجهاز التالي، وعلى حد سواء، لا يمكنني تثبيت أي برنامج آخر. لذلك يمكنني فقط استخدام أوامر SHELT SHELT الحالية. يمكنني إما نسخ جميع ملفات الكتابة مع، مثل * .png، أو واحدة تلو الأخرى في ملف البرنامج النصي، الاضطرار إلى إدخال كلمة المرور لكل ملف فردي. الشيء الوحيد الذي قمت به كان مفيدا هو كتابة كلمة المرور في ملف، وقطعها، وتكون قادرا على الصعود إلى كل موجه لكل ملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top