我正在嘗試在兩個 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 小時!