Вопрос

Когда я пытаюсь использовать ssh команда в сценарии командной оболочки команда просто находится там.У вас есть пример того, как использовать ssh в сценарии оболочки?

Это было полезно?

Решение

Зависит от того, что вы хотите сделать и как вы это используете.Если вы просто хотите удаленно и безопасно выполнить команду на другом компьютере, просто используйте

ssh user@host command

например

ssh user@host ls

Чтобы сделать это безопасно, вам нужно либо запросить у пользователя пароль во время выполнения, либо настроить ключи на удаленном хосте.

Другие советы

Во-первых, вам нужно убедиться, что вы настроили вход без пароля (с открытым ключом).Существует по крайней мере два варианта ssh с немного отличающимися форматами файлов конфигурации.Проверьте ssh справочную страницу в вашей системе, проконсультируйтесь с местным системным администратором или перейдите по адресу Как мне настроить аутентификацию по открытому ключу?.

Бежать ssh в пакетном режиме (например, в рамках сценария командной оболочки) вам необходимо передать команду, которую вы хотите запустить.Синтаксис таков:

ssh host command

Если вы хотите запустить более одной команды одновременно, используйте кавычки и точки с запятой:

ssh host "command1; command2"

Кавычки необходимы для защиты точек с запятой от интерпретатора командной оболочки.Если бы вы их не указали, только первая команда была бы запущена удаленно, а все остальные были бы запущены на локальном компьютере.

Вы можете использовать expect команда для ввода информации об имени пользователя / пароле.

Вам нужно поместить свой открытый ключ SSH в ~/.ssh/authorized_keys файл на удаленном хостинге.Тогда вы сможете подключиться по SSH к этому хосту без пароля.

В качестве альтернативы вы можете использовать ssh-agent.Я бы не рекомендовал хранить пароль в скрипте.

Самый простой способ - это использовать сертификат для пользователя, который запускает скрипт.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top