PuTTY-скрипты для входа на хост
Я использую PuTTY для удаленного входа в систему на моем хосте. При входе в систему нам необходимо выполнить следующие действия:
Я буду регистрироваться на этом хосте много в течение этого семестра, и я надеялся создать script, который устранит избыточность вышеуказанных шагов. Игнорируя очевидные проблемы с безопасностью моего пароля в script, как я мог бы это достичь? У меня нет опыта работы с скриптами, поэтому ваша обратная связь с благодарностью. Спасибо!
Изменить: я играл с параметрами командной строки для Putty, и я смог обойти шаги 1-2, используя:
Я также создал файл оболочки, который выглядит так:
Вот общая команда, которую я пытаюсь запустить из командной строки:
Это удаляет меня удаленно на хост Linux. На стороне хоста я создал файл оболочки с именем sql с этим содержимым:
Подводя итог, автоматизация этих шагов выполняется в два простых шага:
Я не уверен, почему в предыдущих ответах не предлагалось, чтобы исходный плакат настраивал профиль оболочки (bashrc,.tcshrc и т.д.), который автоматически выполнял свои команды при каждом входе на сервер.
Квест, который привел меня на эту страницу для справки, немного отличался – мне нужно несколько ярлыков PuTTY для одного и того же хоста, которые выполняли бы разные команды запуска.
Я придумал два решения, оба из которых работали:
(background) У меня есть папка с множеством ярлыков PuTTY, каждая из которых имеет свойство “target” на вкладке быстрого доступа, которая выглядит примерно так:
с каждой загрузкой, соответствующей профилю PuTTY, который я сохранил (с разными хостами на вкладке “Сессия” ). (В основном они отличаются только цветовыми схемами. Мне нравится, когда каждая группа связанных задач совместно использует цветовую схему в окне терминала, с критическими задачами, такими как вход в систему как root в производственной системе, выполняется только в явно цветных окнах.)
Свойства папки в папке установлены на очень чистую и урезанную – она работает как небольшая консоль с ярлыками для каждой из моих частых удаленных соединений PuTTY и RDP.
Что я, наконец, начал работать после многих проб и ошибок:
(ярлык целевого поля):
где исполняемый файл выглядит как
(не нужны точки с запятой)
Это запускает скриптную команду (в моем случае просто печатает “Hello, world” на терминале) и устанавливает переменную, с которой может взаимодействовать мой удаленный сеанс.
(решение 2)
Этот метод чувствует себя намного более чистым, так как мозг находится на стороне удаленного Unix, а не на локальной стороне Windows:
Из мастер-сессии Putty (не “редактирование настроек” из существующего сеанса) загрузите сохраненную конфигурацию, а на вкладке SSH удалите команду:
(решение 3, не проверено)
Вот что я использую для подключения к mysql из пакетного файла:
Я хочу предложить общее решение для этих требований, возможно, это будет полезно для вас: AutoIt. С помощью этой программы вы можете писать сценарии поверх любого окна, такого как Putty, и выполнять все команды, которые вы хотите (например, нажатие кнопки или щелчок мышью в текстовых окнах или кнопках).
Таким образом вы можете эмулировать все шаги, которые вы всегда делаете с Putty.
ввод команды после входа в систему может быть выполнен, перейдя через раздел SSH в нижней части шпатлевки, и вы должны иметь опцию. Удаленная команда (данные для отправки на сервер) разделяет две команды;
mputty может это сделать, но он не работает всегда. (если этот период ожидания слишком медленный)
mputty использует шпатлевку, и она расширяет шпатлевку.
Существует возможность запуска script.
Если это не работает, убедитесь, что период ожидания до ввода является большим значением или увеличивает это значение. См. Сеансы шпаклевки, название сеанса, правую кнопку мыши, свойства/ script.
Сценарии PuTTY для входа на хост
Я использую PuTTY для удаленного входа на хост моей школы. При входе в систему мы должны выполнить следующие действия:
Я буду входить в этот хост много в течение этого семестра, и я надеялся создать сценарий, который устранит избыточность вышеуказанный шаг. Игнорируя очевидные упущения безопасности с моим паролем в скрипте, как бы я этого достиг? У меня нулевой опыт работы со сценариями, поэтому ваши отзывы очень ценятся. Спасибо!
Edit: я играл с параметрами командной строки для шпатлевки, и я смог обойти шаги 1-2, используя:
Я также создал файл оболочки, который выглядит так:
когда я пытаюсь добавить эту опцию в командную строку с помощью-m вариант, похоже, что шпатлевка входит в хост, а затем сразу выходит. Есть ли способ сохранить сеанс открытым после запуска файла оболочки или я неправильно использую параметр-m? Вот ссылка на руководство PuTTY, которое я следовал:http://the.earth.li /
вот все, что я пытаюсь запустить из командной строки:
7 ответов
это регистрирует меня удаленно на хост Linux. На стороне хоста я создал файл оболочки под названием sql С этим содержанием:
подводя итог, автоматизация этих шагов теперь выполняется в два простых шага:
Я не уверен, почему предыдущие ответы не предложили, чтобы оригинальный плакат создал профиль оболочки (bashrc,.tcshrc, etc.), которые выполняли свои команды автоматически каждый раз, когда они входят в систему на стороне сервера.
Я придумал два решения, оба из которых работали:
(фон) у меня есть папка с различными ярлыками шпатлевки, каждый со свойством «target» на вкладке ярлыков выглядит примерно так:
(Решение 1) Как упоминалось в других ответах, переключатель-m используется для настройки скрипта на стороне Windows для запуска, переключатель-t используется для подключения, но я обнаружил, что он чувствителен к порядку, если я хочу получить это бежать, не выходя
что я, наконец, получил на работу после многих проб и ошибок было:
где выполняемый файл выглядел как
(точка с запятой не требуется)
это запускает команду сценария (в моем случае просто печатает «Hello, world» на терминале) и устанавливает переменную, с которой может взаимодействовать мой удаленный сеанс.
Примечание для отладки: при запуске PuTTY it загружает скрипт-m, Если вы редактируете скрипт, вам нужно повторно запустить PuTTY вместо того, чтобы просто перезапустить сеанс.
(решение 2) Этот метод чувствует себя намного чище, так как мозги находятся на удаленной стороне Unix вместо локальной стороны Windows:
из Putty master session (не «редактировать настройки» из существующего сеанса) загрузите сохраненную конфигурацию и на вкладке SSH установите удаленную команду:
(решение 3, несудите)
вот что я использую для подключения к MySQL из пакета файл:
Я хочу предложить общее решение для этих требований, возможно, это польза для вас: AutoIt. С помощью этой программы вы можете писать сценарии поверх любого окна, такого как Putty, и выполнять все команды, которые вы хотите (например, нажатие кнопки или щелчок мыши в текстовых полях или кнопках).
таким образом, вы можете эмулировать все шаги, которые вы всегда делаете с Putty.
ввод команды после входа в систему можно сделать, пройдя через раздел SSH в нижней части шпатлевки, и у вас должна быть опция удаленная команда (данные для отправки на сервер), разделяющая две команды ;
mputty можете сделать это, но это не всегда. (если этот период ожидания слишком медленный)
mputty использует замазку, и она расширяет замазку. Есть возможность запустить скрипт. Если это не работает, убедитесь, что период ожидания перед вводом является высоким значением или увеличить это значение. См. сеансы шпатлевки, затем имя сеанса, правую кнопку мыши, страницу свойств / сценария.
Подключение PuTTy по SSH-ключу в один клик
Введение
Недавно я арендовал небольшой сервер под Ubuntu для того, чтобы потренироваться разворачивать на нем свои поделки на Java (небольшие веб-приложения). Я специально не стал пользоваться готовыми решениями, а решил научиться самостоятельно настраивать окружение на удаленном linux сервере.
Для подключения к серверу я использовал многим известную программу PuTTy. И мне было жутко неудобно запускать её и загружать сохраненную настройку. Я задался вопросом запуска в один клик. Скажу сразу, я не сильно искушенный человек в такого рода вопросах и большую часть жизни необходимости использования данного инструмента не было. В связи с чем, возможно, я не начал поиск там, где надо, и в итоге не нашел готового решения и изобрел велосипед. Надеюсь, другим людям с подобным вопросом поможет этот пост.
Гугл в помощь
Но нигде не было описано как подключиться к серверу по ssh ключу и сразу залогиниться в систему. Были примеры использования plink, но это не то, что я искал. В процессе моих исследований, я выяснил что в арсенале PuTTy есть еще один инструмент, с помощью которого можно запустить подключение. И называется он pageant. Немного разобравшись в способах его использования я сваял себе простой батничек. Можно обойтись одной строкой, но для наглядности я написал файл с переменными и комментариями.
В результате выполнения этого скрипта запустится pageant и запросит у Вас фразу для расшифровки приватного ключа. После чего он запустит PuTTy и начнет подключнение к серверу, а также запомнит ввод парольной фразы. Пока pageant будет запущен, Вы сможете подключаться без повторного ввода парольной фразы. При подключении, в окне консоли PuTTy вы увидите что-то вроде примера с картинки.
Автоматический вход под заданным пользователем
Т.к. я использовал не портативную PuTTy, а установочный дистрибутив, то у меня вместо пути к PuTTy можно использовать обычный консольный вызов putty:
Заключение
Надеюсь, кому-то этот пост поможет быстрее найти решение и не тратить время на изучение командного интерфейса PuTTy. Не стал прикладывать описание процедуры генерации SSH ключа и настройки сервера, т.к. скорее всего, вы все это уже нагуглили и настроили. Ключ я генерировал с помощью генератора в составе PuTTy.
Скрипт PuTTY для входа на хост
Я использую PuTTY для удаленного входа на хостинг моей школы. После входа в систему мы должны выполнить следующие действия:
Я буду часто заходить на этот хост в течение этого семестра, и я надеялся создать сценарий, который устранит избыточность описанных выше шагов. Игнорируя очевидные недостатки безопасности, связанные с наличием моего пароля в сценарии, как мне этого добиться? У меня нет опыта написания сценариев, поэтому я очень благодарен за ваши отзывы. Спасибо!
Изменить: я поигрался с параметрами командной строки для Putty, и мне удалось обойти шаги 1-2, используя:
Я также создал файл оболочки, который выглядит так:
Вот общая команда, которую я пытаюсь запустить из командной строки:
8 ответов
Это позволяет мне удаленно подключаться к хосту Linux. На стороне хоста я создал файл оболочки под названием sql со следующим содержимым:
Подводя итог, автоматизация этих шагов теперь выполняется в два простых шага:
Для меня это работает так:
Шпатлевка, протокол, имя пользователя @ IP-адрес, порт и пароль. Для подключения менее чем за секунду.
Mputty может это сделать, но не всегда работает. (если этот период ожидания слишком медленный)
Mputty использует шпатлевку и расширяет шпатлевку. Есть возможность запустить скрипт. Если это не сработает, убедитесь, что период ожидания перед вводом имеет высокое значение, или увеличьте это значение. См. Сеансы замазки, затем имя сеанса, правая кнопка мыши, страница свойств / сценария.
Ввод команды после входа в систему можно выполнить, пройдя через раздел SSH в нижней части шпатлевки, и у вас должна быть опция Удаленная команда (данные для отправки на сервер), разделяющая две команды с помощью;
Таким образом, вы можете имитировать все шаги, которые вы всегда делаете с Putty.
Вот что я использую для подключения к mysql из командного файла:
Я придумал два решения, оба из которых сработали:
(фон) У меня есть папка с множеством ярлыков PuTTY, каждое из которых имеет свойство «target» на вкладке ярлыков, которое выглядит примерно так:
После долгих проб и ошибок я наконец-то приступил к работе:
(поле назначения ярлыка):
Где исполняемый файл выглядел как
(точки с запятой не нужны)
Это запускает запрограммированную команду (в моем случае просто печатаю «Hello, world» на терминале) и устанавливает переменную, с которой мой удаленный сеанс может взаимодействовать.
(решение 2) Этот метод кажется намного чище, поскольку мозг находится на удаленной стороне Unix, а не на локальной стороне Windows:
Из основного сеанса Putty (а не «редактирования настроек» из существующего сеанса) загрузите сохраненную конфигурацию и на вкладке SSH установите удаленную команду на:
(решение 3, не опробовано)
Создайте пакетный файл или ярлык для PuTTY (ssh), который открывает сеанс и запускает команду
Я часто открываю сеанс SSH для запуска одной и той же команды. У меня есть все настройки для входа в систему без ввода пароля (через аутентификацию на основе ключей SSH), поэтому мне было интересно, есть ли способ создать ярлык или командный файл в Windows, который бы загружал PuTTY или аналогичную программу, а затем запускал ее команда (и, вероятно, выход, если результат хороший).
Вы можете скачать plink.exe с здесь.
Последним шагом будет создание ярлыка, в том числе plink.exe с нужными параметрами.
Проверьте документацию Plink для других различных параметров: документация Plink.exe
Plink принимает команду в своей командной строке:
Вы можете использовать конфигурации замазки для достижения этой цели.
Загрузите замазку и настройте сеанс.
Введите удаленную команду, которую вы хотите запустить здесь:
Затем, прежде чем нажать « Открыть », вернитесь на вкладку « Сеанс » (вверху) и сохраните свою конфигурацию.
Теперь вы можете просто нажать на ярлык, и он загрузит ваш сеанс, выполнив вашу команду.
Если вы используете Windows 10, вам может быть интересно узнать, что Microsoft по сообщениям имеет бета-версию OpenSSH (клиент и сервер ):
[…] Перейдите в «Управление дополнительными функциями», затем + «Добавить функцию». Затем вы можете прокрутить список вниз и найти функции OpenSSH Client (Beta) и OpenSSH Server (Beta) в Windows. Идея запуска другой удаленной службы в Windows может быть пугающей, поэтому мы не будем винить вас, если вы не хотите устанавливать сервер.
Вот текущее (по состоянию на 28 ноября 2017 г.) ssh руководство по использованию команд, которое мы получаем вместе с Windows OpenSSH Client:
Если это работает, вы можете использовать ssh * Nix:
Просто подумал, что вставлю сделанный мной скрипт, чтобы, надеюсь, сэкономить несколько часов на синтаксисе и изучении страниц руководства.
Эта партия предполагает:
Это в основном полезно для использования одного сценария (например, обновления SSL-сертификата) на нескольких компьютерах