Как войти в систему с удаленного сервера на мой собственный ПК?

Хорошо у меня отчасти есть фиксация для этого. Существует хорошее объяснение от этого сайта https://bugs.launchpad.net/ubuntu / + source/gconf / + ошибка/336660:

Объяснение проблемы следующее:

Когда Вы su для укоренения от терминала, где Вы зарегистрированы как другой пользователь новый "преследуемый" пользователь, собирающийся наследовать переменные среды от родительского пользователя оболочки.

Пример: скажем, это для пользовательского разъема переменная среды DBUS_SESSION_BUS_ADDRESS установлено на: "unix:abstract =/tmp/dbus-l5SiTFzmR8, guid=1af28c9d83400a896ef6268d4a7af59f" Теперь, если Вы открываете терминал как разъем и делаете su для укоренения переменной DBUS_SESSION_BUS_ADDRESS, должен остаться что касается пользовательского разъема. И вот проблема, точно эта определенная огибающая переменная (DBUS_SESSION_BUS_ADDRESS) генерирует ту проблему. Программы Gnome как gedit, наутилус... используйте dbus протокол для общения с gconf, где специфичные для приложений конфигурации хранятся, и не просто. Программа, выполненная как корень, использует другой адрес шины сессии D-шины, сравненный, когда Вы выполняете ту программу как пользователь разъема, например. Таким образом, проблема состоит в том, что Вы переключаетесь на корень, но переменные неподвижные точки DBUS_SESSION_BUS_ADDRESS dbus адрес шины сессии разъема.

Решение: у пользователя root есть отдельный dbus адрес сессии также (расположенный в/root/.dbus/session-bus/...) Так для использования адреса dbus корня, когда Вы находитесь в терминале и "преследуемые" для укоренения просто ясные переменная DBUS_SESSION_BUS_ADDRESS. как: экспортируйте DBUS_SESSION_BUS_ADDRESS = "" программа, которая нужна в dbus связи с gconf, например, проверяет, что переменная среды, и если это пусто, это читает адрес dbus от пользователей ~/.dbus/session-bus/каталог (правильное место). Для создания этого постоянным добавляют следующую строку к пользователям root .bashrc файл: экспортируйте DBUS_SESSION_BUS_ADDRESS = "", Это означает, что каждый раз, когда Вы su для укоренения и терминал не являетесь оболочкой входа в систему (случай, когда Вы зарегистрированы как разъем и открыли терминал и выполнил su) переменная DBUS_SESSION_BUS_ADDRESS очищена, таким образом, приложения, собирающиеся читать адрес dbus из правильного места.

по тому, как Вы не должны запускать новую dbus сессию с dbus-запуском. Даже если Вы сделаете так, но приложения все еще читают адрес dbus из неправильного места, то проблема сохранится.

Когда я unsetenv DBUS_SESSION_BUS_ADDRESS, я могу теперь запустить emacs в X после su'ing. Однако я все еще получаю предупреждения:

(emacs 1879): GLib-WARNING **: In call to g_spawn_sync()...

8
07.09.2012, 13:01
2 ответа

Как ответ daveh указывает, это могло быть столь же просто как просто издание ssh nawshad@ipaddress.

Однако возможности состоят в том, что Ваш ПК не доступен непосредственно из Интернета, т.е. он находится позади какого-то маршрутизатора.

Одна опция состоит в том, чтобы сказать маршрутизатору позволять трафику к Вашему ПК пройти. Как Вы делаете это зависит от маршрутизатора. Это опции только работают, если у Вас есть административный доступ к маршрутизатору, и что нет никаких других включенных маршрутизаторов.

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

Этот процесс был описан http://www.vdomck.org/2005/11/reversing-ssh-connection.html; жаль о ссылке, но я не хочу копировать всю информацию оттуда в здесь.

В принципе команда, которую Вы даете от своего ПК, (предположение, что Вы хотите соединиться из me@machine_b.cs.x.ca),

ssh -f -N -R 10000:localhost:22 me@machine_b.cs.x.ca

Затем когда в университете, можно соединиться с домашним ПК со следующей командой:

ssh -p 10000 nawshad@localhost

Можно измениться 10000 в обеих командах к другому значению; просто удостоверьтесь, что это больше, чем 1 024.

Примечание: в то время как этот туннель жив, все с доступом к machine_b.cs.x.ca может попытаться войти в Вашу систему; удостоверьтесь, что у Вас есть хорошие пароли.

Для закрытия туннеля просто уничтожьте соответствующий процесс ssh, например, с

pkill -f 'ssh -f -N -R 10000:localhost:22 me@machine_b.cs.x.ca'
10
27.01.2020, 20:11

Да. Это - в значительной степени случай для использования SSH.

Если Ваша персональная машина не регистрируется в DNS в Вашем университете (который маловероятен), Вы были бы лучшими от выполнения этого через ipaddress.

Сначала удостоверьтесь, что SSH включен на Вашей персональной машине. Свериться ps -ef | grep sshd | grep -v grep и если не устанавливают и запускают sshd.

Однажды его рабочая попытка к ssh к Вашей машине через IP-адрес, например, ssh nawshad@0.0.0.0 Вам нужно предложить Ваш пароль.

Удачи!

1
27.01.2020, 20:11
  • 1
    , Когда я выполнил PS-ef | grep ssh, я нашел 0:00:00 following:nawshad 2898 2512 0 23:18 pts/0 grep - color=auto sshd это означает, что у меня нет ssh включенным в моем персональном ноутбуке? –  MiNdFrEaK 07.09.2012, 06:23
  • 2
    . Это - сам запрос grep. SSH не работает на Вашей машине. Позвольте мне обновить запрос для исключения этого –  daveh 07.09.2012, 07:27
  • 3
    Это только работает, если ПК на самом деле непосредственно подключен к Интернету, который довольно маловероятен. –  daniel kullmann 07.09.2012, 12:26

Теги

Похожие вопросы