Я бы предложил вместо этого использовать аутентификацию с открытым ключом (сгенерировать на клиенте пару открытых / закрытых ключей с ssh-keygen
, добавить открытый (.ssh/id.pub
по умолчанию) ключ к .ssh/authorized_keys
на сервере & mdash; см. Страницу man ). Чем вы можете:
- Заранее введите ключевую фразу для ключа, используя
ssh-agent
или
- используйте ключ без ключевой фразы.
В последнем случае я предлагаю вам ограничить ключ определенной командой. Я не уверен, как установить команду для scp, но
ssh test@172.100.100.143 'cat /tmp/11-03-15_03:00:01.tar.gz' > /tmp/11-03-15_03:00:01.tar.gz
эквивалентно. Вы просто пишете command="
команду "
перед вашим ключом в .ssh/authorized_keys
. Тогда сервер ssh, авторизованный с помощью этого ключа, всегда будет запускать указанную команду независимо от того, что было указано в командной строке ssh. Это ограничивает ущерб, который может нанести злоумышленник, если он получит доступ к вашему ключу без пароля.
Если вам нужно, чтобы имя файла менялось, вам нужно написать скрипт на стороне сервера, который вытянет имя $SSH_ORIGINAL_COMMAND
(вот где серверный скрипт получает то, что было указано на командной строки ssh), проверьте, что это один из разрешенных файлов, и добавьте его.