Для помощи другим быстро, SSH очень полезен, особенно объединенный с Экраном GNU. Распространено, что пользователи находятся позади маршрутизатора NAT. Даже если пользователь может настроить маршрутизатор, он занимает время, чтобы помнить пароль, найти правильные опции, и т.д.
Так, что самый легкий путь состоит в том, чтобы помочь другим по SSH, если они находятся позади маршрутизатора NAT?
Я в настоящее время говорю, что люди для открытия терминала выполняют ниже команды и передают меня их IP от сайта как http://ip.appspot.com/:
sudo apt-get install openssh-server ssh-import-id && ssh-import-id lekensteyn
Очевидно, это не собирается работать, если они находятся позади маршрутизатора NAT или настроили персональный брандмауэр. Так, есть ли что-то как:
sshd --accept-help-from lekensteyn
Я не ищу альтернативы как Teamviewer, просто оболочка как SSH. Это должен быть открытый исходный код также.
Если Ваш собственный компьютер может принять соединения SSH, существует способ использовать технику что Pavlos G., связанный с без дополнительного компьютера.
Вам сначала нужно неимущее* пользователь, которого Ваш друг соединит как:
sudo adduser reverse --shell /bin/false
Скажите Вашему другу запускать туннель:
ssh -N -R 62222:localhost:22 reverse@lekensteyns-server
Затем на Вашем собственном компьютере (lekensteyns-server
), запустите обратное соединение:
ssh -p 62222 localhost
* я не знаю достаточно о безопасности, чтобы смочь консультировать по вопросам создания соответственно неимущего пользователя. Это - вероятно, что-то, что должно быть покрыто отдельным вопросом.
На основе Ваших определенных потребностей я был бы, вероятно:
Я также забыл, что можно попробовать реверс ssh туннель, хотя для этого решения технически нужен еще один - середина - компьютер для работы.
Больше информации может быть найдено здесь
Я просто обычно создавал туннель IPv6 (из sixxs.net или he.net), если у них уже нет IPv6 и затем того способа, которым компьютер имеет статический адрес, и я не должен смешивать с NAT. Мне также нравится настраивать основанную на ключе аутентификацию (затем, они не должны говорить Вам свой пароль).
Sixxs имеет их собственный клиент, который Вы используете. Это работает позади почти любого NAT и автоматически обновляет, когда адрес IPv4 изменяется. У них есть инструкции относительно того, как настроить его, и это упаковывается для Ubuntu.
Электрическое использование урагана туннель, куда пакеты IPv6 отправляются как полезная нагрузка пакета IPv4. В отличие от Sixxs, не используется никакой TCP/UDP. Это означает, что NAT, Вы находитесь позади, должен поддерживать передающий ПРОТОКОЛ 41 (не порт), и только один компьютер позади NAT может использовать его. Программное обеспечение для использования туннеля как это встроено в Ubuntu.
Для HE я использую что-то вроде этого в /etc/network/interfaces
:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
endpoint 216.218.226.238
address 2001:470:a29f::2
netmask 64
ttl 64
up ip -6 route add default dev he-ipv6
down ip -6 route del default dev he-ipv6
Другая вещь, которую необходимо сделать, обновить конечную точку туннеля. Так как Вы не знаете, когда Внешние изменения IP, необходимо будет просто попытаться обновить конечную точку каждые несколько минут. Вы могли использовать что-то вроде этого и выполнить его от крона:
#!/bin/sh
echo -n "Hurricane Electric Proto-41 tunnel endpoint update: "
#(C) 2010 Erik B. Andersen This script is licensed under the latest version of the
# AGPL published by the Free Software Foundation at http://www.gnu.org/licenses/ .
####Set these for each different site#########
pass="passwordhere"
user_id="a765b8e2f474667dcb56e08c5f1aa05b"
tunnel_id="97817"
####Past here doesn't need to be changed######
wget -4 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&pass=$(echo -n "${pass}" | md5sum | grep -o -E "[0-9a-fA-F]{32}")&user_id=${user_id}&tunnel_id=${tunnel_id}" -O /dev/null -o /dev/null --no-check-certificate
echo " Done"
Вдоль лет я разработал GUI, чтобы сделать точно, что OP спрашивает... за исключением того, что он требует ssh доступа к третьему серверу с общедоступным IP, как предложено Pavlos. Можно найти здесь debian пакеты и инструкции:
http://pietrobattiston.it/reachme
Заметьте, что это (все еще) не может заботиться о первоначальной конфигурации - а именно, необходимо установить себя rsa ключи для соединения без пароля. После того, как настроенный, "reachthem" позволяет Вам видеть, соединен ли "reachme", и открыть ssh окружают/просматривают файловую систему/представление (экспериментальный) экран.
Очевидно, Вам не нужен третий компьютер, если Ваш компьютер сам имеет общедоступный IP, как в ответе ændrük. И ясно, преимущество GUI - то, что удаленный пользователь не должен вводить команду в терминал..., но часть этого преимущества потеряна, если удаленный пользователь должен установить reachme. Таким образом, я просто всегда устанавливаю и настраиваю reachme всем, на ком я устанавливаю Ubuntu.