“Saluran 3: buka gagal: dilarang secara administratif: buka gagal” saat membuat sesi VNC pada terowongan SSH

10

Saat membuat koneksi VNC melalui koneksi SSH tunneled, saya mendapatkan kesalahan:

channel 3: open failed: administratively prohibited: open failed

Saya telah menemukan bahwa ini terjadi hanya ketika saya tidak masuk ke host secara lokal seperti usernamepada host saya mencoba untuk terhubung menggunakan koneksi VNC tunneled. Terowongan SSH:

ssh -p 6000 -L 5901:127.0.0.1:5901 [email protected]

Koneksi VNC:

vncviewer localhost:1

Saya sudah mencoba menyesuaikan pengaturan dalam /etc/ssh/sshd_configmenggunakan AllowTunnel yesdan tanpa pengaturan. (Saya melakukan restart ssh setelah setiap perubahan:) service ssh restartNamun, kesalahan hilang jika saya memiliki sesi lokal yang berjalan pada host jarak jauh (yaitu saya login sebagai usernamelokal.) Apakah ada orang lain yang melihat perilaku ini? Sepertinya saya harus dapat memulai VNC dari jarak jauh dan mengaksesnya tanpa harus login secara lokal juga.

Mike Swartz
sumber
1
Mike, silakan periksa tur untuk melihat bagaimana situs ini bekerja dan jika jawaban saya menyelesaikan masalah Anda, terima saja.
Jakuje

Jawaban:

14

Opsi yang Anda cari bukan AllowTunnel(itu untuk VPN dan penerusan level 3 menggunakan tunperangkat). Anda mencari AllowTcpForwarding, yang menangani penerusan port TCP dan lokal di ssh.

Lihat nilai apa yang ada di server Anda dan ubah menjadi yes:

AllowTcpForwarding yes
Jakuje
sumber
Terima kasih untuk jawaban cepat Mu. Itu tampaknya telah memperbaiki masalah saya. Saya telah melihat orang lain dengan masalah yang sama dan satu saran AllowTunnel yesmasuk sshd_config, tetapi itu tidak berhasil bagi saya.
Mike Swartz
1
Mungkin ini adalah legenda urban, seperti juga jawaban lain datang ke sini. Tidak tahu dari mana asalnya dan sangat mudah untuk membuka halaman manual dan memeriksa artinya. Jika itu cocok untuk Anda, luangkan waktu untuk memeriksa jawabannya sebagai solusi untuk membantu orang lain.
Jakuje
1
Mengapa memilih?
Jakuje
AllowTcpForwarding Menentukan apakah penerusan TCP diizinkan. Opsi yang tersedia adalah "ya" atau "semua" untuk memungkinkan penerusan TCP, "tidak" untuk mencegah semua penerusan TCP, "lokal" untuk mengizinkan penerusan lokal (dari perspektif ssh (1)) saja atau "jarak jauh" untuk memungkinkan jarak jauh hanya meneruskan. Standarnya adalah "ya".
Bart Polot
related (false): serverfault.com/a/24389/328011
YSC
0

Saya memiliki penyebab resolusi nama untuk kesalahan ini. / Etc / hosts saya memiliki alamat IP yang salah untuk nama server (bukan untuk localhost), seperti ini:

127.0.0.1     localhost
192.168.2.45  server.domain.com server

Tetapi IP server yang dikonfigurasi (dan nama DNS diselesaikan dengan perintah host / dig) adalah 192.168.2.47. Kesalahan ketik sederhana yang disebabkan oleh konfigurasi ulang IP sebelumnya. Setelah memperbaiki / etc / hosts, koneksi terowongan bekerja dengan sempurna:

ssh [email protected] -L 3456:127.0.0.1:5901

Sungguh aneh bahwa IP asli menyebabkan kegagalan ketika saya menggunakan IP localhost literal untuk terowongan. Distro: Ubuntu 16.04 LTS.

Fjor
sumber