兩台伺服器之間的 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.

我做了一些測試。如果我嘗試從從站連接到主站

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

因此,您的隧道使用者帳戶沒有有效的 shell,因此您無法登入它。

答案2

我發現我的錯誤了!

問題出在 MS Word 中,我將所有命令保存在文件文件中,然後複製並貼上它們。在某些情況下,MS Word 會將常規格式轉換-為較長格式。所以,這個更長的破折號破壞了我的最後一個指令:

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

天哪,我為此浪費了 8 小時!

相關內容