.jpg
окончание файла (случай мог бы иметь значение),convert *.jpg output.pdf
Это работает со столькими JPGs, сколько Вы хотите. Вы получите файл PDF на одну n-страницу для n JPG-файлов.
Вы можете использовать переадресацию агента: не забудьте включить 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
В удаленной оболочке можно просто запустить:
ssh-agent bash
Таким образом вы получите новый экземпляр агента SSH и новую оболочку bash
с установленными необходимыми переменными окружения. Когда вы покидаете оболочку с exit
или logout
, агент SSH также завершает работу.
Если у вас есть те же ключи, доступные на устройстве, которое вы используете напрямую, вы также можете использовать ssh -A
, чтобы сделать локальный агент доступным только что запущенному ] удаленная оболочка . Это имеет некоторые последствия для безопасности, но если у вас есть ключ, доступный на обоих устройствах, разницы нет.
Если вы хотите подключиться к существующему агенту, вам необходимо настроить соответствующие переменные среды так же, как они настроены в вашей графической оболочке. Может быть удобно использовать средство автозапуска сеанса графического интерфейса пользователя, чтобы где-нибудь сохранить переменные. Вы можете получить переменные среды, используя env
.
env | grep SSH
Для доступа к агенту вам просто нужен SSH_AUTH_SOCK
. SSH_AGENT_PID
используется для отправки сигналов агенту, а другие переменные SSH используются для вспомогательных инструментов.
Вы также можете получить доступ к среде других процессов через / proc / * / окружение
. Тем не менее, элементы заканчиваются NUL, а не LF. Я считаю, что в этом случае предпочтительнее файловый метод.