Как получить доступ к машине через 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.