Это не очень безопасно, по крайней мере, в многопользовательской среде. Согласно документации sshpass
:
Параметр -p следует считать наименее безопасным из всех параметров sshpass. Все пользователи системы могут увидеть пароль в командной строке с помощью простой команды «ps».
Во-вторых, существует проблема хранения пароля в скрипте в виде простого текста. Если вы собираетесь это сделать, по крайней мере, убедитесь, что вы установили разумные разрешения (что-то вроде 700).
По возможности следует использовать аутентификацию на основе ключей. Вам по-прежнему необходимо принимать меры предосторожности, чтобы снизить вероятность взлома ключевого файла при хранении на вашем компьютере, но вы устраняете проблему с утечкой пароля выполняющейся командой, и в качестве дополнительного бонуса закрытый ключ, вероятно, будет намного сильнее / сложнее взломать чем пароль. Чтобы упростить задачу, вы можете создать запись в ~ /.ssh / config
, например:
Host mysite.com
HostName mysite.com
Port 22
User me
IdentityFile ~/.ssh/id_mysite.key
С помощью записи, подобной приведенной выше, вы можете изменить свою команду просто на
rsync -r -n -t -v --progress -s mysite.com:/remote_path /local_path
Хотя это и не требуется, я предпочитаю хранить все свои ключи в ~ / .ssh
], потому что он ограничивает места, где могут находиться ключи, а для каталога .ssh
обычно по умолчанию установлены более строгие разрешения. Я также установил разрешение для каждого ключевого файла на 600, поэтому вы можете рассмотреть возможность установки этого разрешения в качестве разрешения файла по умолчанию внутри ~ / .ssh
для большего удобства и уменьшения вероятности забывания до chmod
при какой-то момент в будущем.
Наконец, если вы хотите еще больше безопасности, вы можете защитить свой закрытый ключ паролем, а затем разблокировать его, когда вы входите в систему, что-то вроде морского конька
(я считаю, что пароль зашифрован, а ключ шифрования для разблокировки пароль - это пароль, который вы используете для входа в систему). Таким образом, вам не нужно вводить пароль. У меня есть несколько таких установок, но, к сожалению, я не могу точно вспомнить, как я это сделал. Во всяком случае, это, наверное, перебор.