Попробуйте это:
for f in *.txt; do echo ${f%.*};done
*.txt
соответствовать всему концу файлов .txt
${f%.*}
синтаксис оболочки для Расширения Параметра, удалите подобранный шаблон самого маленького суффикса в $f
. Здесь мы удаляем дополнительную часть .txt
. В итоге я использовал SSH ~ / .ssh / config
хаки, чтобы это произошло:
Host hopper
User naftuli
ForwardAgent yes
Host overthere
User naftuli
ForwardAgent yes
ProxyCommand ssh -q hopper nc overthere 22
Это означает, что когда я пытаюсь подключиться к ssh через
из , находящегося здесь
, он подключается к загрузчику
а затем проксирует SSH-соединение на порт 22 на поверх
(то есть: SSH на поверх
).
У этого есть потрясающие побочные эффекты:
ssh -L 5900:localhost:5900 overthere "x11vnc -display :0 -localhost"
Все работает отлично, и, насколько я могу судить, 5900 не открывается в хоппере
, а только перенаправляется напрямую из туда
на сидит здесь
.
Сначала подключайте бункер, пока делаете туннель между рабочим и домом.
ssh -f ismail@hopper -L 2222:overthere:22 -N
затем делайте ssh ro через vnc туннель
ssh -p 2222 -f ismail@localhost -L 5900:localhost:5900
Теперь вы можете соединяться с vnc. Кстати, измените конфигурацию vnc для прослушивания localhost
.] Если вы используете VNC клиент []vncviewer[
] из командной строки, вы можете использовать переключатель []-via[
], чтобы сказать ему, что нужно туннелировать через []user@host[
] перед подключением к другому VNC серверу хоста.[
$ vncviewer -via user@host localhost:0
]
[]Вы также можете использовать []vinagre[
] для подключения через SSH туннель, подобно тому, как это делается через GUI. Для этого настройте ваше соединение подобным образом через диалог подключения в []vinagre[
]:[
] [][
] [], в результате чего ваше соединение будет туннелироваться через хост туннеля SSH.[
] [] [][
] []Используя встроенную возможность SSH перенаправлять порты. Из []места расположения [
] выполните:[
ssh -v -N -L 5900:overthere:5900 user@hopper
]
[]Направьте VNC-клиента на []localhost:5900[
] и трафик будет туннелироваться на [] через него: 5900[
] через SSH-соединение, установленное на [] бункер[
][
] Вы можете перенаправить порт из [] sithere[
] в [] через [
] SSH порт через [] бункер[
]. Затем вы можете использовать этот порт для достижения [] над [
] прямо из [] сидящего места [
]. В этом втором сеансе SSH вы можете переадресовать VNC или любые другие порты, которые вам нравятся, в то время как []hopper[
] видит только зашифрованный сеанс SSH.[
]Первый сеанс SSH:[
] [ssh -f -N -L 7022:overthere:22 hopper
]
[]Теперь скажите клиенту SSH, как он может достигнуть []поверх [
], добавив эту конфигурацию в []~/. ssh/config[
] на []sithere[
][
Host overthere
HostName hopper
Port 7022
HostKeyAlias overthere
]
[]Second SSH session:[
] [ssh -f -N -L 5900:localhost:5900 overthere
]
[]Или просто обычный интерактивный сеанс SSH без туннеля порта VNC:[
] [ssh overthere
]
[]Если вы не хотите утруждать себя добавлением строк в []~/. ssh/config[
] вы все еще можете сказать ему, как подключиться к []поверх [
] из командной строки:[
ssh -p 7022 hopper
]
[]... но без []HostKeyAlias[
] SSH не проверит правильность отпечатка ключа []поверх [
]. [
] Все командные строки должны быть запущены из [] сидящего места [
]. [
] Кстати, я думаю, что вам, вероятно, не нужно использовать опцию []ssh[
] []-t[
]. [
Следующая команда также должна работать идеально
ssh -f -N -J hopper overthere -L 5900:localhost:5900
Было протестировано с дополнительным параметром для подключения к серверу PostgreSQL на postgres-server
через настроенный порт(-p
коммутатор ), а также с использованием настроенного имени пользователя.
ssh -f -N -J user1@jumphost -p 2222 user2@postgres-server -L 5432:localhost:5432
Как видите, решение простое и не требует каких-либо изменений конфигурации ssh или каких-либо промежуточных шагов.