Если ssh
на jumpstation поддерживает аргумент '-W', вы можете связать его:
В ~ / .ssh / config
:
Host 10.144.108.127
ProxyCommand ssh -q user@jumpstation -W %h:%p
И в командной строке портативного компьютера:
ssh -R PORT_WITH_INTERNET:localhost:PORT_WITH_INTERNET user@10.144.108.127
Вам также необходимо запустить прокси на вашем портативном компьютере и установить соответствующие настройки прокси на удаленном компьютере.
Даже если jumpstation ssh не поддерживает аргумент '-W' (в чем я сомневаюсь), это можно обойти, вызвав netcat
на jumpstation или даже открыв / dev / tcp /. ..
и пара кота
(если там у вас есть bash).
sed "
/^admin::common::passwords:$/,/^[^ ].*:$/ {
/^ $ACCOUNT:$/ {
N;d
}
}" < "$YAML"
То есть заключите вашу удаляющую строфу в раздел, соответствующий между admin :: common ...
и следующим any-section:
.
Помните, что . Символ
, часто встречающийся в именах пользователей, также является оператором регулярного выражения, поэтому john.doe
будет соответствовать john.doe
, но также, например, johnWdoe
.
Обратите внимание, что приведенное выше не будет работать, если у вас есть два последовательных раздела admin :: common :: passwords
, а учетная запись для удаления находится во втором разделе.
Если как Отеус указывает , разделы будут выполняться до следующей строки, которая имеет такое же или меньшее количество начальных пробелов, и ваш раздел admin :: common :: passwords:
может есть несколько ведущих пробелов, то, вероятно, пора переключиться на другой язык, например awk
:
awk -v account="$ACCOUNT" '
match($0, /[^ ]/) && RSTART <= n {n = 0}
n && NF == 1 && $1 == account ":" {getline; next}
!n && /^ *admin::common::passwords:$/ {
match($0, /[^ ]/)
n = RSTART
}
{print}' < "$YAML"