Я пытаюсь создать SSH-туннель между двумя VPS для безопасной репликации MySQL. Я следую этим шагам (только для чтения Шаг 1: Настройка SSH-туннеля): https://www.digitalocean.com/community/tutorials/how-to-secure-mysql-replication-using-ssh-on-a-vps Оба сервера с ОС Ubuntu 14.04. Проблема возникает, когда я пытаюсь создать туннель на своей подчиненной машине, когда я запускаю:
ssh -L 33061:localhost:3306 [email protected] -f -N
Я получаю такой ответ:
This account is currently not available.
Я сделал несколько тестов. Если я попытаюсь подключиться от Slave к Master с
ssh '[email protected]' //before to execute: usermod -s /sbin/nologin tunneluser
это работает, так что мои ключи верны. Кажется, проблема в этом шаге:
usermod -s /usr/sbin/nologin tunneluser
В первый раз, когда я попробовал это, все работало нормально, но я не могу воспроизвести это снова. Я использую те же образы моих VPS, я следую тем же шагам, нет никакой разницы в среде, в каком облаке может быть проблема?
решение1
Вы пропустили строку в инструкции, которой следуете, которая гласит:
Пользователи Debian и Ubuntu заменяют /sbin/nologin на /usr/sbin/nologin
Таким образом, у вашей учетной записи tunneluser нет действительной оболочки, и вы не можете войти в нее.
решение2
Я нашел свою ошибку!
Проблема была в MS Word, я сохранил все команды в doc-файле и просто скопировал и вставил их. MS Word в некоторых случаях преобразует обычные -
в более длинные –
. Так вот, это более длинное тире ломает мою последнюю команду:
ssh -L 33061:localhost:3306 [email protected] -f -N
О боже, я потерял из-за этого 8 часов!