Как использовать команду SSH в сценарии оболочки? - PullRequest
3 голосов
/ 15 октября 2010

Я знаю, что мы должны сделать ssh user @ target, но где мы указываем пароль?


Хм, спасибо за все ваши ответы.Мое требование - я должен запустить несколько серверов на разных машинах.Все серверы должны быть запущены с одним сценарием оболочки.Ну, вводить пароль каждый раз кажется немного плохим, но я думаю, мне придется прибегнуть к этому варианту.Одна из причин, по которой я не хочу сохранять открытые ключи, заключается в том, что я не могу подключаться к одним и тем же компьютерам каждый раз.Впрочем, легко вернуться и изменить скрипт для изменения целевых адресов.

Ответы [ 6 ]

6 голосов
/ 15 октября 2010

Лучший способ сделать это - сгенерировать пару секретный / открытый ключ и сохранить ваш открытый ключ на удаленном сервере. Это безопасный способ входа без ввода пароля каждый раз. Подробнее здесь

2 голосов
/ 15 октября 2010

То, как я делал это в прошлом, - это просто установить пару ключей аутентификации.

Таким образом, вы можете войти без указания пароля, и это работает в скриптах оболочки. Здесь есть хороший учебник:

http://linuxproblem.org/art_9.html

2 голосов
/ 15 октября 2010

Команда ssh запросит ваш пароль.Указывать пароли в командной строке небезопасно, поскольку выполняемая полная команда обычно видна всему миру (например, ps aux), а также сохраняется в виде простого текста в файле истории команд.Любая хорошо написанная программа (включая ssh) при необходимости запросит пароль и отключит эхо-запрос телетайпа, чтобы он не отображался на терминале.

Если вы пытаетесь выполнить ssh из cron или изфон, используйте ssh-agent .

2 голосов
/ 15 октября 2010

Это невозможно сделать с помощью простой команды ssh по соображениям безопасности.Если вы хотите использовать маршрут пароля с ssh, следующая ссылка показывает некоторые сценарии, чтобы обойти это, если вы настойчивы:

Скрипты для автоматизации ввода пароля

1 голос
/ 15 октября 2010

Ключи SSH являются стандартным / предлагаемым решением. Ключи должны быть настроены для пользователя, для которого скрипт будет запускаться как.

Для этого пользователя сценария посмотрите, есть ли у вас какие-либо настройки ключей в ~ / .ssh / (файлы ключей заканчиваются расширением .pub)

Если у вас нет настроек клавиш, вы можете запустить:

ssh-keygen -t rsa

, который сгенерирует ~ / .ssh / id_rsa.pub (опция -t также имеет другие типы)

Затем вы можете скопировать содержимое этого файла в ~ (удаленный пользователь) /. Ssh / authorized_keys на удаленном компьютере.

Как пользователь скрипта, вы можете проверить, что он работает:

ssh remote-user@remote-machine

Вы должны войти в систему без запроса пароля.

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

0 голосов
/ 15 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...