Как получить доступ к машине через VNC, используя SSH?

У нас более 500 систем, работающих под управлением Ubuntu в нашем офисе. И иногда после установки мы забываем включить удаленный рабочий стол. Так что мы не смогли дистанционно управлять этим ПК. Есть ли способ получить доступ к этой машине удаленно с помощью SSH? Coz SSH был установлен в этой удаленной машине. Также, если эта машина была на экране входа в систему, мы не могли просматривать через VNC. Я думаю, SSH будет хорошим решением. Может кто-нибудь мне помочь? Заранее спасибо.

3 ответа

Решение

Используйте SSH, чтобы добраться до машины. Попросите гнома не спрашивать: "Вы уверены?" после включения удаленного доступа к рабочему столу. Затем включите удаленный доступ.

gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

Вы также можете создать сценарии для этого, например, /usr/local/bin/start-remote-desktop.sh.

Используйте ваш любимый редактор поверх vim, если хотите...

sudo vim /usr/local/bin/start-remote-desktop.sh

Содержимое этого файла:

#!/bin/bash
gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

Сделайте его исполняемым:

sudo chmod 0755 /usr/local/bin/start-remote-desktop.sh

Добавьте его в вашу пользовательскую конфигурацию по умолчанию:

sudo sh -c 'echo "/usr/local/bin/start-remote-desktop.sh" >> /etc/skel/.profile' 

Что касается человеческого фактора в обслуживании 500 рабочих станций, вам бы очень хотелось использовать CloneZilla. Один сервер CloneZilla предоставляет предварительно настроенные образы для рабочих станций, которые можно установить по сети. Вы даже можете передавать их в многоадресном режиме, так что, предположим, всего за несколько часов все рабочие станции будут отображаться с общей конфигурацией, одинаковой версией и т. Д. На dedoimedo.com есть хорошее руководство.

Я фанат x11vnc, Это простой VNC-сервер, и вам не придется возиться с настройками Gnome или 500 брандмауэрами, просто установите x11vnc на всех ваших компьютерах (с марионеткой или чем-то, что вы используете для массового контроля).

Затем с вашего локального компьютера запустите:

ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

Очевидно, обмен user@host для имени пользователя и имени хоста /IP удаленного компьютера.

А затем используйте VNC-клиент по вашему выбору для подключения к localhost:5900, Команда SSH запускает сервер vnc на удаленном компьютере, а затем туннелирует этот порт через SSH. Вам не нужно открывать какие-либо порты (если вы уже можете SSH).

Если на ваших компьютерах установлены забавные настройки дисплея, лучше оставить -display :0 сегмент в команде SSH. x11vnc Затем автоматически попытается найти правильный дисплей.

Этот метод лучше, чем просто запуск VNC-сервера на каждой машине, потому что вы не будете все время тормозить каждую машину. Это также значительно меньше риска для безопасности, так как пользователь SSH - единственный человек, который увидит сервер VNC; всегда видимые, всегда включенные серверы VNC являются популярными целевыми хакерами.

Я не уверен, что вы спрашиваете. Если вам удобно управлять машиной из командной строки, ssh - это все, что вам нужно. Но если вам нужен графический интерфейс... Вы можете установить и запустить автономный VNC-сервер (thinvncserver или vnc4server) через ssh - тот, который не контролирует существующий сеанс GUI, но запускает новый, видимый только через VNC.

Другие вопросы по тегам