Я хотів би змінити своє існуюче з'єднання SSH за допомогою сценарію оболонки. Тому якщо я запускаю існуючий сценарій віддалено, я хотів би, щоб він відкрив новий порт, який потрібно тунелювати.
Я можу це зробити за допомогою:
ubuntu@6c1a17c3864c:~$ ~C
ssh> -R 9000:localhost:9000
Як сказати набагато чіткіше, ніж я міг: https://unix.stackexchange.com/questions/33557/using-an-already-established-ssh-channel .
В ідеалі я хотів би використовувати сценарій оболонки для взаємодії через утікаючі символи, щоб відрегулювати існуюче з'єднання.
Я подивився на щось таке:
#!/bin/bash
# Attempt 1
echo -n '\r\f \~\~C -L 9000:localhost:9000'
# Attempt 2
echo -e '\r\f\~\C -R 9000:localhost:9000'
printf '\~\C -L 9000:localhost:9000'
netstat -taln
Як і кілька інших комбінацій.
Я переконався, що і echo, і printf є вбудованими оболонками.
Я використовую Bash 4.3.11 x86_64-pc-linux-gnu.
expect
сценарій, щоб досягти цього. Але чому? Ви можете визначити переадресацію портів у командному рядку набагато простіше.