無法創建 OpenSSH 隧道
我正在嘗試通過 openssh 設置 vpn。
我在 Arch Linux 上執行客戶端。客戶端的版本是
OpenSSH_7.7p1, OpenSSL 1.1.0h 27 Mar 2018
.ssh 伺服器位於 Google Cloud 上的 Ubuntu 17.10 版本上
OpenSSH_7.5p1 Ubuntu-10ubuntu0.1, OpenSSL 1.0.2g 1 Mar 2016
。在伺服器配置中,我啟用了各種轉發以及PermitTunnel
選項。我已經重新啟動了 sshd 守護程序。apparmor
為了以防萬一,我也禁用了。沒有 selinux 正在執行。我也這樣做modprobe tun
以防萬一(儘管例如 openvpn 可以正常工作)。該伺服器在 Google Cloud 和 Ubuntu 級別上都啟用了 ip 轉發。ufw
已禁用,Google 防火牆已完全打開。首先,我嘗試使用此命令進行連接:
sudo ssh -i ssh_key -w any:any root@ip -vvv -o Tunnel=point-to-point
以上失敗,並且在故障點附近來自 ssh 的調試輸出是:
debug1: Authentication succeeded (publickey). Authenticated to xxxxxxxx. debug1: Requesting tun unit 1 in mode 1 debug1: sys_tun_open: tun1 mode 1 fd 4 Tunnel device open failed. Could not request tunnel forwarding. debug1: channel 0: new [client-session] debug3: ssh_session2_open: channel_new: 0
由於上述失敗,我認為我應該先創建 tun 設備。這就是我所做的:
在客戶端:
sudo ip tuntap add tun1 mode tun sudo ip link set tun1 up sudo ip addr add 172.32.0.1/24 peer 172.32.0.2 dev tun1
在伺服器上:
sudo ip tuntap add tun1 mode tun sudo ip link set tun1 up sudo ip addr add 172.32.0.2/24 peer 172.32.0.1 dev tun1
但這又以同樣的方式再次失敗。
我嘗試在本地機器上執行 sshd 伺服器並連接到 localhost。但後來它又以同樣的方式失敗了。
我嘗試了本地埠轉發,它起作用了。
如何使用 openssh 正確設置 vpn?我徹底搜尋了網路,但沒有任何幫助。
我的 Arch Linux 也有同樣的問題。ArchLinux 安裝在客戶端和伺服器上。openssh 的版本是
7.7p1-1
. 作為臨時解決方案,我安裝了 openssh 版本7.6p1-2
OpenSSH_7.7p1 Debian-2,OpenSSL 1.0.2o 2018 年 3 月 27 日也有同樣的問題。
使用此腳本降級 ssh 後:
wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-client_7.4p1-10+deb9u3_amd64.deb wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-sftp-server_7.4p1-10+deb9u3_amd64.deb wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-server_7.4p1-10+deb9u3_amd64.deb dpkg -i *.deb systemctl restart ssh systemctl status ssh
VPN 再次開始工作。