Проброс socket с удалённой на локальную машину. socket forward.


romy4 аватар

romy4 - Posted on 16 Август 2016

Удалённый mysql крутится c unix_socket и чтобы удалённо что-то подебажить его надо пробросить локально. На помощь приходит socat. Его надо поставить локально и на удалённой машине.

создаём локально директорию:

mkdir -p ~/.remote_sockets && chmod 0700 ~/.remote_sockets

и теперь запускаем его локально (соединение у нас по ключу):

export SOCKET_DIR=~/.remote_sockets
socat "UNIX-LISTEN:$SOCKET_DIR/mysqld.sock,reuseaddr,fork" EXEC:'ssh -p 2526 -i /home/user/.ssh/my_key_rsa  socat STDIO UNIX-CONNECT\:/run/mysqld/mysqld.sock'

Всё, консолька висит — значит ок. Не используйте ~ в качестве /home/user

открываем консоль №2

mysql -u username -S "$SOCKET_DIR/mysqld.sock" -p

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

0
Ваша оценка: Ничего

Проверьте права доступа на .ssh/, .ssh/authorized_keys, .ssh/id_rsa (иногда $HOME, но это вроде бы на Solaris-е такие заморочки)
Как правило ключ не работает если права доступа слишком либеральные на той или иной стороне. "restorecon -rv ~" если selinux активирован и ключ был принесён извне - при генерации всё обычно в норме.

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.