Когда я пытаюсь использовать команду ssh в оболочке script, команда просто сидит там. Есть ли у вас пример использования ssh в оболочке script?
Как вы используете ssh в оболочке script?
Ответ 1
Зависит от того, что вы хотите сделать, и как вы его используете. Если вы просто хотите выполнить команду удаленно и безопасно на другом компьютере, просто используйте
ssh [email protected] command
например
ssh [email protected] ls
Чтобы сделать это безопасно, вам нужно либо попросить пользователя пароль во время выполнения, либо настроить ключи на удаленном хосте.
Ответ 2
Во-первых, вам нужно убедиться, что вы настроили пароль без пароля (вход в открытый ключ). Есть как минимум два варианта ssh с немного разными форматами конфигурационных файлов. Просмотрите man-страницу ssh в вашей системе, обратитесь к локальному системному администратору или перейдите к Как настроить аутентификацию с открытым ключом?.
Чтобы запустить ssh в пакетном режиме (например, в оболочке script), вам нужно передать команду, которую вы хотите запустить. Синтаксис:
ssh host command
Если вы хотите одновременно запускать несколько команд, используйте кавычки и точки с запятой:
ssh host "command1; command2"
Кавычки необходимы для защиты точек с запятой от интерпретатора оболочки. Если вы их оставите, только первая команда будет запущена удаленно, а все остальное будет запущено на локальной машине.
Ответ 3
Вы можете использовать команду expect
для заполнения информации о имени пользователя/пароле.
Ответ 4
Вам нужно поместить открытый SSH-ключ в файл ~/.ssh/authorized_keys
на удаленном хосте. Тогда вы сможете использовать SSH для этого хоста без пароля.
В качестве альтернативы вы можете использовать ssh-agent
. Я бы рекомендовал не хранить пароль в script.
Ответ 5
Самый простой способ - использовать сертификат для пользователя, который запускает script.
Более сложная задача заключается в добавлении к паролю пароля, когда команда оболочки запрашивает его. Ожидайте, perl-библиотеки, покажите пользователю запрос с запросом пароля (если это интерактивно, по крайней мере), есть много вариантов.