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

Для примера:

###SHELL###
$  keytool -genkey -v -keystore TestApp.keystore -alias TestApp -keyalg RSA -keysize 2048 -validity 10000
    Enter passphrase: my  passphrase here
    Repeat the passphrase: my passphrase again
    Enter your full name: my name
    Enter your organization unit: my org. unit
    Enter your organization name: my org. name
    Enter password for keystore (press return for same as key passphrase): i press enter here

   Success!!

$ _  

Здесь я хочу передать все эти входные данные (фразу-пароль, имя и т.д.) В STDIN, чтобы после ввода команды меня не спрашивали об этих входах.

Это возможно? Если да, то расскажите, пожалуйста, как. Я новичок в скриптах Bash, поэтому, пожалуйста, потерпите меня :)

2 ответа2

0

Вы можете использовать ожидать для этого. Ожидаемый скрипт будет выглядеть примерно так:

`` `

#!/usr/bin/expect -f
spawn keytool -genkey -v -keystore TestApp.keystore -alias TestApp -keyalg RSA -keysize 2048 -validity 10000
expect "Enter keystore password:"
send "my_passphrase\n"
expect "Re-enter new password:"
send "my_passphrase\n"
#and so on with the other prompts

`` `

0

Вы можете использовать инструмент под названием "xdotool", чтобы действовать вместо того, чтобы вводить команды. Например, если вы хотите ввести следующую информацию в пользовательский ввод:

1.) Имя 2.) Фамилия 3.) Имя пользователя 4.) Пароль 5) организация

Вы можете установить переменные для этих вещей в скрипте, как этот пример:

#!/bin/bash

FNAME="first name"
LNAME="last name"
UNAME="username"
PWORD="password"
ONAME="Organization name"

## This moves the mouse into the specific screen coordinates.
xdotool mouse move # #

## This types the first name and hits enter.
xdotool type "$FNAME"
xdotool key Return

## This types the last name and hits enter.
xdotool type "$LNAME"
xdotool key Return

## This types the username and hits enter.
xdotool type "$UNAME"
xdotool key Return

## This types the password and hits enter.
xdotool type "$PWORD"
xdotool key Return

## This types the organization and hits enter.
xdotool type "$ONAME"
xdotool key Return

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

xdotool getmouselocation

Это даст вам конкретные координаты для этой позиции мыши. Тогда ...

xdotool click 1

Команда ... щелкнет внутри этого окна и сделает его активным окном, чтобы скрипт мог работать правильно. Это довольно симпатичный маленький инструмент, который можно использовать в качестве макроса для любой задачи, требующей мыши и клавиатуры. Имейте в виду, что xdotool не предустановлен во всех дистрибутивах Linux, поэтому вам, возможно, придется сначала установить его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .