سؤال

كيف يمكنني استخدام نتوقع أن إرسال كلمة المرور إلى اتصال ssh.

أقول كلمة المرور p@ssword و الأوامر ssh كان ssh me@127.0.0.1

ماذا أفعل مع نتوقع أن تجعل من إدخال كلمة المرور عندما يقول

me@127.0.0.1's كلمة المرور:
?

العمل السليم باستخدام مفتاح SSH الزوج ليس خيارا لأن وأود أن استخدام ssh (scp) وضع المفتاح على الخادم الذي سوف يطلب منك كلمة مرور.

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

المحلول

كنت دائما "السليم" الحل, ولكن كنت أتوقع في حالات أخرى.

هنا وجدت التالية اقتراح:

#!/usr/local/bin/expect
spawn  sftp  -b cmdFile user@yourserver.com
expect "password:"
send "shhh!\n";
interact

نصائح أخرى

فإنه لن يكون من الأسهل لاستخدام المصادقة الأساسية العامة و استخدام مفتاح مع مرور?

باسم المستخدم على المصدر آلة تفعل هذا جعل مفتاح RSA

ssh-keygen -t rsa

الآن نسخ ~/.ssh/id_rsa.حانة إلى الجهاز الهدف وإلحاقه authorized_keys الملف من المستخدم المستهدف

أسرع طريقة إلى الأمام (إلا إذا كنت تريد أن تصبح Tcl الخبراء التي من شأنها أن تكون...غير عادية...في عام 2009) وربما استخدام autoexpect.هنا هو رجل الصفحة:

http://expect.nist.gov/example/autoexpect.man.html

باختصار النار حتى autoexpect, تشغيل ssh الدورة أنهي ما تحتاج إلى القيام به ، ووقف autoexpecting ثم ضربات لوحة المفاتيح الخاصة بك على mess حتى يعمل :) أفترض أنك لا تحتاج إلى أي شيء أكثر من الإختراق السريع للحصول على المفاتيح الخاصة بك تسويتها ثم يبدو أنك تعرف النتيجة مسبقا مع ذلك.

و هناك هذا السؤال الذي يحتوي بالفعل على سبيل المثال بالقرب من ما كنت تسعى.

Cygwin وقد autoexpect ليس فقط في بن الحزمة.تشغيل setup.exe والبحث عن نتوقع التحقق من مصدر خانة الاختيار.سترى الناتجة شجرة في /usr/src و هناك وهناك تتوقع/تتوقع/أمثلة الدليل.هناك حياة نسخة من autoexpect النصي.

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

أنا متأكد من أنه ليس من الممكن أن تفعل ما كنت تحاول القيام به.معظم *nix التطبيقات التي الفوري عن كلمة السر قراءة من TTY مباشرة ، وليس ستدين لذا لا يمكنك الأنابيب كلمة المرور في.يمكنك كما ذكر آخرون ، تكوين SSH ليس موجه كلمة المرور كما هو موضح هنا.

بعد أن كان downvoted دون سبب واضح ، ذهبت ولم قليلا من البحث على expect الأمر واكتشفت أن لديها send_tty الأمر الذي يرسل إلى /dev/tty بدلا من stdin ، والتي قد تفعل ما تريد...كنت على علم مسبقا من هذه الميزة.ما زلت أوصي وضع المفتاح على الخادم, ومع ذلك.

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