Назад | Перейти на главную страницу

SSH-туннелирование между двумя серверами

Я пытаюсь создать туннель 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 tunneluser@1.1.1.1 -f -N

Я получаю такой ответ:

This account is currently not available.

Я сделал несколько тестов. Если я попытаюсь подключиться от ведомого к ведущему с помощью

ssh 'tunneluser@1.1.1.1' //before to execute: usermod -s /sbin/nologin tunneluser

он работает, поэтому мои ключи верны. Кажется, проблема в этом шаге:

usermod -s /usr/sbin/nologin tunneluser

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

Я нашел свою ошибку!

Проблема была в MS Word, я сохранил все команды в файле doc и просто скопировал и вставил их. MS Word конвертирует обычные - дольше в некоторых случаях. Итак, это длинное тире нарушает мою последнюю команду:

ssh -L 33061:localhost:3306 tunneluser@1.1.1.1 -f -N

Боже, я потерял 8 часов из-за этого!

Вы пропустили строку в инструкции, которой следуете:

Пользователи Debian и Ubuntu заменяют / sbin / nologin на / usr / sbin / nologin

Таким образом, ваша учетная запись туннельного пользователя не имеет допустимой оболочки, и вы не можете войти в нее.