
Есть ли способ передать пароль с помощью .ssh/config
? Я пытаюсь настроить способ входа на сервер под определенным пользователем, а затем автоматически переключаться на root при подключении (нужно ввести пароль).
На данный момент у меня есть:
Host server
HostName hostname.server.com
User not-root
Port 1234
RemoteCommand su
- Мне нужно использовать эти шаги (пользователь -> su)
- Мне нужно использовать этот ключ (с парольной фразой)
решение1
Как правило, большинство системных администраторов настраивают систему так, чтобы ее автоматизация не зависела от паролей.
SSH
Для аутентификации SSH проще всего создать пару ключей, в которой закрытый ключ не защищен паролем.
Если вам нужна парольная фраза для закрытого ключа SSH, добавление этого ключа/парольной фразы в ssh-agent (или в связку ключей Mac OSX) — это одноразовое действие, после которого вам больше не придется вводить парольную фразу.
Если это не вариант, используйтеsshpass
в ваших скриптах/командах используйте пароль/парольную фразу из командной строки
На сервере
Опять же, самое простое/традиционное решение — не вводить пароль.
Ваши возможности зависят от уровня контроля, которым вы располагаете.
настройте политику sudo NOPASSWD (в идеале только для соответствующих команд), которая позволит вам выполнить
sudo some-command --with args
илиsudo -i
для интерактивного сеанса входа в систему без ввода парольной фразы.настроить учетную запись root для прямого удаленного входа по SSH (не лучшее решение, но если вы не разрешаете аутентификацию по паролю, то только аутентификацию на основе ключей...)
в зависимости от настроек просто добавьте свою учетную запись в группу «sudo», «wheel» или «admin», и вы получите полные права администратора.
Если вы действительно хотите отправить пароль, expect
есть ли утилита для автоматизации этого процесса?