использование ssh-агента

  1. Создайте новую папку, добавьте их к этой папке и удостоверьтесь, что у них есть a .jpg окончание файла (случай мог бы иметь значение),
  2. Перейдите к той папке и типу в терминале convert *.jpg output.pdf

Это работает со столькими JPGs, сколько Вы хотите. Вы получите файл PDF на одну n-страницу для n JPG-файлов.

2
21.04.2014, 16:33
2 ответа

Вы можете использовать переадресацию агента: не забудьте включить ForwardAgent yes в конфигурацию на стороне клиента ( ~ / .ssh / config ) или используйте параметр командной строки -A . (Эта функция может быть отключена на стороне сервера ( AllowAgentForwarding в sshd_config ), но это полезно только для ограниченных учетных записей, которые не могут запускать произвольные команды оболочки.) Таким образом, все ключи с вашего локального компьютера доступны в удаленном сеансе. Обратите внимание, что включение пересылки агента на стороне клиента имеет последствия для безопасности: это дает администратору удаленного компьютера доступ к вашим ключам (например, если вы находитесь в A и имеете ключ для B и ключ для C, а также разрешаете пересылку агента. в вашем подключении к B, это позволяет B получить доступ к вашим ключам и, следовательно, войти в C).

Если вы хотите, чтобы агент из вашего X-сеанса на офисном компьютере был доступен в сеансах SSH из дома, вам необходимо установить переменную среды SSH_AUTH_SOCK так, чтобы она указывала на тот же файл, что и в X сессия. Это достаточно просто сделать вручную:

export SSH_AUTH_SOCK=/tmp/ssh-XXXXXXXXXXXX/agent.12345

где XXXXXXXXXXXX - случайная строка, а 12345 - PID процесса агента. Вы можете легко автоматизировать это, если есть один работающий агент ( find / tmp -maxdepth 1 -user $ USER -name 'ssh - *' ), но определить, какой агент вам нужен, если их несколько, сложнее .

Вы можете извлечь значение SSH_AUTH_SOCK из запущенного процесса.Например, в Linux, если вашим оконным менеджером является Metacity (оконный менеджер Gnome по умолчанию):

env=$(grep -z '^SSH_AUTH_SOCK=' /proc/$(pidof -s metacity)/environ')
if [ -n "$env" ]; then export "$env"; fi

В качестве альтернативы вы можете настроить офисную машину на использование одного агента SSH. Если агент запускается автоматически при входе в систему, то в большинстве дистрибутивов он не запускается, если в среде уже есть переменная с именем SSH_AUTH_SOCK . Поэтому добавьте определение SSH_AUTH_SOCK в свой ~ / .profile или ~ / .pam_environment и запустите вручную ssh-agent , если он еще не запущен в .profile :

export SSH_AUTH_SOCK=~/.ssh/$HOSTNAME.agent
if [ -z "$(pgrep -U "$USER" ssh-agent)" ]; then
  ssh-agent >/dev/null
fi
1
27.01.2020, 22:00

В удаленной оболочке можно просто запустить:

ssh-agent bash

Таким образом вы получите новый экземпляр агента SSH и новую оболочку bash с установленными необходимыми переменными окружения. Когда вы покидаете оболочку с exit или logout , агент SSH также завершает работу.

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

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

env | grep SSH

Для доступа к агенту вам просто нужен SSH_AUTH_SOCK . SSH_AGENT_PID используется для отправки сигналов агенту, а другие переменные SSH используются для вспомогательных инструментов.

Вы также можете получить доступ к среде других процессов через / proc / * / окружение . Тем не менее, элементы заканчиваются NUL, а не LF. Я считаю, что в этом случае предпочтительнее файловый метод.

3
27.01.2020, 22:00

Теги

Похожие вопросы