Как Вы сохраняете пароль скрытым при вызове во время команды su?

Не так решение как несколько самородков совета, который может быть полезным для рассмотрения при использовании tar/cpio/rsync и т.д. Во-первых, это могла бы быть хорошая идея скопировать от связывания, монтируются Вашей исходной файловой системы (mount --bind source mntdir). Это будет иметь подобный эффект как --one-file-system опции к rsync и tar и -xdev с find. Это имеет преимущества работы, если эти опции недоступны (возможно, из-за старой версии, хотя примечание, которые связывают монтирование, было представлено в Linux 2.4), и файлы разрешения под точками монтирования, которые будут сохранены, который может быть желательным в некоторых случаях.

Во-вторых, я советовал бы для использования числового uids и ценурозов где возможный (--numeric-owner для tar, --numeric-ids для rsync и --numeric-uid-gid для cpio). Если Вы восстанавливаете резервное копирование без этого, и владелец/группа больше не существует, или uid/gid отличается (это может произойти особенно, если живой диск используется для восстановления резервного копирования), у Вас может быть один набор uids/gids, используемого при восстановлении, которые становятся недопустимыми после /etc/passwd и /etc/group восстанавливаются.

Кроме того, смотрите на clonezilla. Методы, которые они используют, чтобы сделать объем резервного копирования, не могут быть полезны для Вас, но когда это работает, имеет опции скопировать секторы/таблицы разделов начальной загрузки и поддерживает и MBR и GPT, таким образом, могут быть некоторые сценарии там, которые могут копироваться/адаптироваться в Ваши цели.

Как заключительные 2 цента, я рассмотрел бы rsync быть стандартным способом сделать это. Это - конечно, наиболее эффективный способ при выполнении возрастающих резервных копий, хотя не так для того от полного резервного копирования. Несомненно, это не повсеместно, но я думаю, что это - ошибка не включать его в выпуск сервера дистрибутива. Это может уже быть установлено на всех Ваших серверах.

2
03.06.2014, 02:44
3 ответа

Две вещи:

  1. использовать ~/.ssh/authorized_keys на username@74.11.11.11 для удаленного входа, без интерактивного пароля, вместо того, чтобы иметь пароль в командной строке с клиентской машины. Это также позволит запускать задание автоматически через cron или что-то еще.

  2. настраиваем /etc/sudoers на удаленной машине 74.11.11.11, чтобы разрешить выполнение команды от имени пользователя root, пользователем, который подключается, в данном случае: username.

Таким образом, в вашем примере, /etc/sudoers на 74.11.11.11 позволит пользователю username выполнить mkdir, как root без пароля.

Если вы пробовали это сделать, и это не работает, выполните man sudoers.

1
27.01.2020, 22:06

Как правило, ИЗБЕГАЙТЕ использования sshpass с паролем.
Все, что вы написали, могут быть просмотрены другими пользователями с помощью команды ps, и это ДОЛЖНО вас беспокоить.
Вторая проблема здесь. Я не вижу, чтобы вы указали параметр -t . Это означает, что у вас отключено

Defaults    requiretty

в вашем / etc / sudoers, что может иметь последствия для безопасности.

Если вы все еще настаиваете на использовании sshkeypass, попробуйте:

sshpass -p "password" ssh -qt username@74.11.11.11 "su -lc 'mkdir temp/'"

Вы можете легко настроить генерацию ключа ssh только для выполнения этой работы, а затем удалить его.

ssh-keygen -t rsa

Следуйте инструкциям на экране,

ssh-copy-id user@server1

Или вы также можете сделать:

cat ~/.ssh/id_rsa.pub | ssh user@server1 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
2
27.01.2020, 22:06

Помимо предложений не использовать sshpass, можно оставить его «скрытым» от командной строки:

  • Отредактируйте свой /etc/profile и вставьте туда :
    export SSHPASS='my_pass_here'
    
  • Используйте аргумент -eс командой sshpass
    $ sshpass -e ssh usernmane@hosting.example 'ls -ll' 
    
  • Другой вариант — сохранить пароль в другом файле и использовать аргумент -f:
    $ sshpass -f password_filename ssh usernmane@hosting.example 'ls -la' 
    

Но лучшее решение — следовать @Hristo Mohamedпредложению:

In general please AVOID using sshpass with a password.

You can set up easily a generate ssh key just to do this job and then remove it.

1
30.11.2021, 11:52

Теги

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