Как ответить на подсказку пароля при использовании SCP в сценарии оболочки?

Рассмотрение кода в течение 5 минут является лучшим запуском, если код действительно хорошо организован и прокомментирован, не могло бы быть никакой причины говорить с ним вообще.

, Если код отвратителен, хорошо не ожидайте интеллектуальные причины, почему он взломал что-то вместе, в лучшем случае Вы можете использовать его в качестве ссылки для некоторого грязного кода и спрашиваете, что является целью.

Так или иначе, говоря с прошлым разработчиком наименее полезная вещь сделать, потому что так или иначе, Вы застреваете с нею теперь.

9
задан derrdji 23 September 2009 в 02:44
поделиться

8 ответов

Разрешены ли ключи ssh? Это было бы лучшим решением.

12
ответ дан 4 December 2019 в 06:41
поделиться

Почему бы просто не использовать параметр «-r» для рекурсивного копирования? Или вместо этого использовать rsync?

Вы также можете использовать аутентификацию с открытым ключом, которая не требует дополнительной помощи, если у вас есть реальная учетная запись пользователя. См. это

0
ответ дан 4 December 2019 в 06:41
поделиться

Если вы можете смонтировать каталог с компьютера с Windows (например, через AFS, NFS или SMB, как это делали все лаборатории Windows моего университета), вы можете использовать pscp с - переключатель pw.

0
ответ дан 4 December 2019 в 06:41
поделиться

Вы не говорите, на какой платформе вы находитесь использование дома и в школе. Предполагая, что Linux, Cygwin или OS / X у вас есть несколько вариантов:

  1. Аутентификация с открытым ключом, если она не был выключен на сервере
  2. ssh-agent и ssh-add для ввода пароля один раз за сеанс

Для варианта (1) вы должны

  1. создать пару ключей дома, используя ssh-keygen, без парольной фразы закрытый ключ. Обратите внимание, что пропуск ключевой фразы, вероятно, не является хорошей идеей, если другие люди используют тот же компьютер, но ваша цель состояла в том, чтобы обойтись без необходимости вводить пароль.
  2. загрузите PUBLIC ключ в вашу школу аккаунт и поместите его в ~ / .ssh / authorized_keys
  3. Используйте scp с "-i identityfile" вариант, где identityfile - это полный путь к вашему приватному ключу. Или добавьте запись в .ssh / config (см. Справочные страницы)

Для второго варианта ssh-agent позволяет вам кэшировать ваш пароль в локальном процессе один раз за сеанс. Вы устанавливаете срок действия

0
ответ дан 4 December 2019 в 06:41
поделиться

Что-то вроде этого - http://code.google.com/p/enchanter/ ?

2
ответ дан 4 December 2019 в 06:41
поделиться

Подумайте об использовании ключей или внешней библиотеки.

Я не думаю, что это возможно иначе (надеюсь, я не ошибаюсь), поскольку это налагает автоматическое вторжение грубой силы и обнаружение пароли.

Существуют библиотеки, которые могут делать то, что вы хотите (использовать протокол SFTP, не вызывая scp), например libssh .

Опять же, я настоятельно рекомендую ключи.

4
ответ дан 4 December 2019 в 06:41
поделиться

Я не думаю, что вы легко сможете это сделать. Что вы можете сделать, так это использовать вместо этого аутентификацию с открытым ключом.

Что-то вроде этих строк

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

(или dsa ).

Но это не серверный сбой, не так ли? ? ; -)

4
ответ дан 4 December 2019 в 06:41
поделиться

I agree that you should use keys. But expect can automate the interactive aspect of the process IF you want to hardcode your password in a plain-text script file.

2
ответ дан 4 December 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: