Используйте реальный браузер вместо w3m в соединениях SSH


10

Я использую Ubuntu в качестве настольной и серверной ОС. Когда я вошел на сервер через sshна terminalи иметь для просмотра веб-страниц (локальный) на использование сервера я w3m ( w3m localhost).

К сожалению, с w3m не так просто работать, так как на странице есть несколько больших меню и используется jQuery. Поэтому мне интересно, возможно ли использовать браузер на рабочем столе для подключения к серверу через SSH с реальным браузером (Firefox или Chrome).

По сути, для этого потребуется подключить браузер на моем рабочем столе к серверу через SSH с помощью usernameи passwordи открыть на этом сервере localhost.

Это возможно по умолчанию, или есть какие-нибудь дополнения для Firefox / Chrome? Я бы предпочел Firefox.


Не ответ на ваш вопрос, но ... как насчет переадресации X?
Хавьер Ривера

1
Почему вы не можете подключиться к удаленному серверу через http? Вам конкретно нужен запрос от localhost для тестирования? Пересылка @Javier X, особенно для firefox, сильно загружена, и я бы не рекомендовал ее для нелокальных подключений.
Карстен Тиль

Это с одной стороны для целей тестирования, поэтому он должен быть локальным. С другой стороны, удаленный сервер не находится в локальной сети и не может быть достигнут по обычному http.
Яма

Да, пропускная способность является проблемой при пересылке X.
Хавьер Ривера

Ответы:


14

Используйте переадресацию порта ssh.

Подключитесь к удаленному серверу примерно так:

ssh -L 8080:localhost:80 user@remoteserver

Теперь наведите локальный браузер на localhost: 8080. Он должен быть перенаправлен на localhost: 80 на удаленном сервере.


Я только что проверил это на сервере в моей локальной сети, и это похоже на работу. Я проверю это позже с удаленным сервером.
Яма

6

ЧАСТЬ 1

Сделайте прокси с помощью ssh!

ssh -D 9999 user@remoteserver

Теперь откройте настройки Firefox, перейдите в «Дополнения»> «Сеть»> «Настройки». Выберите Ручная настройка прокси. Поставьте localhost для хоста SOCKS, поставьте 9999 для порта. Проверьте это, зайдя на http://whatismyip.org или на похожий сайт.

Поскольку вы сказали, что пытаетесь получить доступ к веб-странице на локальном хосте (относительно вашего сервера), вы можете не захотеть исключать локальный хост и 127.0.0.1 из использования прокси. Конечно, вы можете просто использовать локальный IP-адрес сервера ..

Если вам не нравится мое объяснение, эти ссылки потрясли мою память при написании этого:

http://linux.die.net/man/1/ssh

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-browsing/

https://calomel.org/firefox_ssh_proxy.html

ЧАСТЬ 2

Полученная ошибка не channel 3: open failed: connect failed: Connection refusedимеет абсолютно никакого отношения к ssh. Видимо, вы пытаетесь получить доступ к какой-то вещи MySQL. Это создает дополнительную проблему, потому что mysql по умолчанию блокирует доступ из ssh-туннелей. Я не делаю mysql, поэтому я не знаю, о чем я говорю для остальной части этого. Я просто цитирую соответствующие биты ссылки в конце, которую вы должны прочитать.

Откройте /etc/mysql/my.cnf и найдите раздел [mysqld]. Если вы видите строку «пропустить сеть», прокомментируйте ее. Добавьте «bind-address = 127.0.0.1» (без кавычек, конечно).

http://www.debuntu.org/port-forwarding-and-channel-3-open-failed-connect-failed-Connection-refused

Часть 3

Решение Хавьера ssh -L 8080:localhost:80 user@remoteserverявляется фантастическим, если вам просто нужен доступ к одному месту. Это позволяет вам получить доступ к localhost, а остальную часть вашего интернета оставить в покое. Мое решение с ssh -D идет дальше и фактически направляет все ваши http-запросы на удаленный сервер. Очевидно, вы на самом деле не хотите этого. Но я нашел это полезным, когда я хотел получить доступ по http ко всем машинам в сети, или когда я не хотел, чтобы мои запросы http проходили через сеть, в которую я подключен (например, онлайн-банкинг в Starbucks. Весь мой трафик уходит через туннель ssh к моему домашнему интернету.)


На запрос «локальный» в FireFox я получаю сообщение об ошибке в терминале , где я открыл соединение SSH: channel 3: open failed: connect failed: Connection refused. У меня не было времени посмотреть его, но, может быть, вы знаете, что это может быть?
Яма

Я только что увидел в справочной странице ssh, что вам нужно быть пользователем root, чтобы использовать эту -Dопцию. По этой причине он не работал и не будет работать, поскольку я не могу подключиться как root к серверу (по соображениям безопасности).
Яма

Какие? Я использовал это все время как обычный пользователь на обоих концах туннеля. О, я вижу. Вы должны быть пользователем root, если попытаетесь использовать порт, например 80 или 21, или любой из других зарезервированных портов IANA. Что-нибудь более 1024 должно быть хорошо. Я думаю, что ошибка связана с вашей блокировкой ssh.conf вперед. Я сейчас гуглю по этим направлениям.
djikyb

Я погуглил вашу ошибку и пришел к этой статье, в которой говорится, что в mysql есть «функция» безопасности, которая по умолчанию блокирует доступ из портов. debuntu.org/…
djeikyb

2

Вы можете использовать перенаправление X через SSH, чтобы любые приложения X, которые вы запускаете на сервере, отображались на вашем персональном компьютере.

  1. При подключении по SSH к серверу добавьте флаг -X. Например, ssh -X myserver.
  2. Установите браузер с графическим интерфейсом на сервере и просто запустите его. Вывод появится на вашем персональном компьютере через переадресацию X и безопасное соединение SSH.

Как упомянул Карстен в своем комментарии к моему вопросу и относительно того, что удаленный сервер не находится в моей локальной сети, как насчет пропускной способности?
Яма

Вам нужно будет определить требования к пропускной способности. В противном случае, вы можете попробовать и посмотреть, как это работает.
user4124
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.