两台服务器之间的 SSH 隧道

两台服务器之间的 SSH 隧道

我正在尝试在两个 VPS 之间创建 SSH 隧道以实现安全 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 帐户没有有效的 shell,因此您无法登录。

答案2

我发现我的错误了!

问题出在 MS Word 中,我将所有命令保存在 doc 文件中,然后直接复制粘贴。在某些情况下,MS Word 会将常规命令转换-为较长的命令。因此,这个较长的破折号破坏了我的最后一个命令:

ssh -L 33061:localhost:3306 [email protected] -f -N

天哪,我为此浪费了 8 个小时!

相关内容