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을 올바르게 설정하는 방법은 무엇입니까? 나는 웹을 철저히 검색했지만 아무것도 도움이 되지 않았습니다.
답변1
Arch Linux에서도 같은 문제가 있습니다. ArchLinux는 클라이언트와 서버 모두에 설치됩니다. openssh 버전은 7.7p1-1
임시 솔루션으로 openssh 버전을 설치했습니다.7.6p1-2
답변2
2018년 3월 27일 OpenSSH_7.7p1 Debian-2, OpenSSL 1.0.2o에서도 동일한 문제가 발생했습니다.
다음 스크립트를 사용하여 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이 다시 작동하기 시작합니다.