туннелирование VNC/rdesktop по ssh

Вы могли проверить отдельно целые и дробные части:

#!/bin/bash
min=12.45
val=12.35    
if (( ${val%%.*} < ${min%%.*} || ( ${val%%.*} == ${min%%.*} && ${val##*.} < ${min##*.} ) )) ; then    
    min=$val
fi
echo $min

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

#!/bin/bash
shopt -s extglob
fcomp() {
    local oldIFS="$IFS" op=$2 x y digitx digity
    IFS='.' x=( ${1##+([0]|[-]|[+])}) y=( ${3##+([0]|[-]|[+])}) IFS="$oldIFS"
    while [[ "${x[1]}${y[1]}" =~ [^0] ]]; do
        digitx=${x[1]:0:1} digity=${y[1]:0:1}
        (( x[0] = x[0] * 10 + ${digitx:-0} , y[0] = y[0] * 10 + ${digity:-0} ))
        x[1]=${x[1]:1} y[1]=${y[1]:1} 
    done
    [[ ${1:0:1} == '-' ]] && (( x[0] *= -1 ))
    [[ ${3:0:1} == '-' ]] && (( y[0] *= -1 ))
    (( ${x:-0} $op ${y:-0} ))
}

for op in '==' '!=' '>' '<' '<=' '>='; do
    fcomp $1 $op $2 && echo "$1 $op $2"
done
6
29.09.2010, 08:44
3 ответа

Я предпочел бы устанавливать vpn (openvpn, например) с сервером на Вашей машине и клиентом на машине Вашего друга. Когда он хочет, чтобы Вы соединились, он открывает vpn (никакой вход в систему, включенный на Вашей машине), и Вы открываете свой клиент удаленного рабочего стола для IP его машины (по крайней мере, с openvpn, можно присвоить "фиксированный" IP его машине, таким образом, можно сохранить его, не будучи должен посмотреть на него каждый раз).

Таким образом, у Вас нет входа в систему Вашей машины, и Вы только получаете доступ к его машине, когда он открывает VPN. С другой стороны можно завершить работу сервера, когда Вы не хотите, чтобы он соединился с Вашей машиной. Так или иначе, если Вы не даете ему пользователя на своей машине (или пользователь только с доступом, Вы хотите), он не сможет к очень там.

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

1
27.01.2020, 20:30
  • 1
    Как Вы сказали, у Вас нет брандмауэра, позволение ssh порт, открытый на Вашей машине, не является очень хорошей идеей..., и то же все еще допустимо для vpn порта... лучшее использование брандмауэра и разрешение его IP соединиться на порте, который Вы хотите. –  laurent 29.09.2010, 17:10

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

После того как у Вас есть tightvnc, установленный на машине Вашего друга, можно работать "tightvncserver:1" для запуска рабочего стола на другом дисплее и затем порта передачи 5901 (5900 + число дисплея) к машине.

Обратите внимание, что рабочий стол по умолчанию является довольно запасным; можно настроить то, что работает, когда tightvnc запускает в ~/.vnc/xsession сценарий на удаленной машине.

0
27.01.2020, 20:30

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

Сначала необходимо установить Клиент Одиночного нажатия UltraVNC. После того как у Вас есть клиент в руке, можно послать по электронной почте удаленному пользователю и когда они выполнят ее, она соединится с vnc клиентом, который работает в режиме слушателя. Думайте об этом как о vnc соединении наоборот. Можно читать больше об обратных соединениях, UltraVNC SC, и т.д. здесь.

Lifehacker делает хорошее задание, объясняющее, как установить все это здесь.

0
27.01.2020, 20:30

Теги

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