В C это похоже на это:
int main(int argc, char *argv[]) {
argc является количеством аргументов. Обратите внимание, что программа/инструмент называет количества.
Сами аргументы заканчиваются в векторе аргумента (или массив), argv.
Затем существует хитрая часть написания кода для контакта с ними намеченного пути.
Затем скомпилируйте с gcc. Вы указываете название программы с -o
(outfile) флаг. Петляйте из его текущего каталога как это: ./tool_name input_file_1 ... input_file_n
(или помещенный это в каталог, который поднимается, когда Вы пишете echo $PATH
, затем можно вызвать его отовсюду, т.е. без точки).
Если sshd
на Вашем среднем сервере не добрался GatewayPorts
набор параметра конфигурации к да (значение по умолчанию не является никаким представлением man 5 sshd_options
) затем необходимо будет указать связывать адрес на передаче:
ssh -R *:9300:localhost:22 user@middleserver
(можно указать IP-адрес локальной машины для создания этого более строгим).
Без этого только устройство закольцовывания передается на middleserver.
(ошибка, о которой Вы сообщаете, показательна из проблемы в step1 ниже),
В первую очередь, сделайте, как вышеупомянутый плакат упомянул: добавить GatewayPorts yes
в/etc/ssh/sshd_config и изменение Ваш ssh-R строка к
ssh -vvv -R *:9300:localhost:22 user@middleserver
(удалите-vvv после того, как мы получим эту работу),
*Установка связывать адреса к * передаст соединения в любом интерфейсе и не просто обратную петлю ('lo', который включает 127.0.0.1 == localhost). ifconfig
перечисляет интерфейсы.. т.е. eth0, lo, и wlan0.*
Если это не работает поиск и устранение неисправностей:
Шаг 1), Удостоверяются, что Вас разрешают ssh в Вашу удаленную машину:
На удаленной машине самой попробуйте:
ssh localhost
Если это говорит, что соединение отказалось затем, необходимо включить ssh на той машине.
Если это успешно выполняется, ввести ifconfig
и отметьте локальное "inet 192.168.xxx.yyy" адрес.
Step2), пробуют SSH от локальной машины
Затем перейдите к машине в той же локальной сети как Ваша удаленная машина и попробуйте к ssh в Вашу удаленную машину: ssh mylgoinID@192.168.xxx.yyy
Если это не успешно выполняется, затем проверяют брандмауэр Вашей удаленной машины (см. ниже).
Если это успешно выполнилось затем
Шаг 3) Попытка ssh от машины посредника
войдите в машину посредника и попробуйте соединение SSH непосредственно оттуда. В вышеупомянутом случае Вы работали ssh -R *:9300:localhost:22 middleuser@middleserver
на удаленной машине, таким образом, необходимо войти в систему middlemachine и работать: ssh remoteuser@localhost -p 9300
Если это успешно выполняется затем, проблема может быть с брандмауэром на Вашем сервере:
Прежде, чем смешать с iptables проверяют и видят, есть ли у Вас используемый менеджер по брандмауэру. Например, проверьте, используется ли "ufw": sudo ufw status
. Было бы намного легче использовать ufw, чем смешать с iptables непосредственно.
iptables -L
и проверьте, открыт ли порт 9300 (это включит некоторое исследование iptables.. это не просто). Обман: Если порт 9300 перечислен рядом с http, и похожим способом затем проверяют, открыт ли http. Если 9300 упоминается ниже затем, это не может быть достигнуто, если "отклоняют, все" - вводят директиву, перечислен перед ним. Это также может быть перечислено как именованный порт. cat /etc/services | grep 9300
однако не поднимает имя в этом случае
Шаг 4) Попытка Ваш вход в систему снова:
ssh remoteuser@middleserver -p 9300
Простое решение, выполните:
sudo apt install openssh-server
на удаленном компьютере.