как заставить ssh использовать другой id_dsa

Использование может использовать это регулярное выражение,

{{(?:(?!{{).)*\|(?:(?!{{).)*}}

Объяснение:

  • {{ - Соответствует литералу {{
  • (?:(?!{{).)* - Соответствует любому тексту, кроме литерального {{, также называемого Закаленный жадный жетон
  • \| - Соответствует трубе | символ
  • (?:(?!{{).)* соответствует любому тексту, кроме литерала {{
  • }} - Соответствует литералу }}

Демо 1

[ 1126] Кроме того, в случае, если есть подобные вложенные шаблоны, и вы хотите соответствовать большинству внутренних шаблонов, вы можете использовать это регулярное выражение,

{{(?:(?!{{|}}).)*\|(?:(?!{{|}}).)*}}

Демонстрация 2 [ 1133]

Проверьте этот код Ruby,

re = /{{(?:(?!{{|}}).)*\|(?:(?!{{|}}).)*}}/
str = 'Testing some text{{ {{ first_name | mask }} }} and another {{ city }} and again {{ state | mask_trail }}'

str.scan(re) do |match|
    puts match.to_s
end

Выходы,

{{ first_name | mask }}
{{ state | mask_trail }}

Онлайн-демонстрация Ruby [ 1130]

8
задан simon 10 April 2009 в 03:05
поделиться

3 ответа

Если вы заботитесь о производительности (а я не советую вам это делать), подход, основанный на попытках, является очевидным победителем (по сравнению с вашим подходом на основе секций или подходом регулярных выражений), если вы не ожидаете много недопустимых строк, и в этом случае он потенциально медленнее (предположительно из-за стоимости обработки исключений).

Опять же, Я не предлагаю вам заботиться о производительности, просто даю вам данные на случай, если вы делаете это 10 миллиардов раз в секунду или что-то в этом роде. Кроме того, основанный на разделах код не обрабатывает хотя бы одну допустимую строку.

$ ./floatstr.py
F..
partition sad: 3.1102449894
partition happy: 2.09208488464
..
re sad: 7.76906108856
re happy: 7.09421992302
..
try sad: 12.1525540352
try happy: 1.44165301323
.
======================================================================
FAIL: test_partition (__main__.ConvertTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./floatstr.py", line 48, in test_partition
    self.failUnless(is_float_partition("20e2"))
AssertionError

----------------------------------------------------------------------
Ran 8 tests in 33.670s

FAILED (failures=1)

Здесь '

6
ответ дан 5 December 2019 в 08:26
поделиться

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

~ / .ssh / config

IdentityFile ~/.ssh/ident/%r@%h
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa

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

Затем, чтобы указать конкретный ключ для « Bob @ someHost », вам просто нужно создать файл

~/.ssh/ident/Bob@someHost

, и он попытается сначала при входе на этот хост.

Если файл не может быть найден или ключ отклонен, он попробует следующий, в этом случае

~/.ssh/id_rsa

Преимущество этого метода заключается в том, что вам не нужно добавлять новую запись каждый раз, когда вы добавляете Другой хост, все, что вам нужно сделать, это создать ключевой файл в нужном месте, и он сделает все остальное автоматически.

12
ответ дан 5 December 2019 в 08:26
поделиться

со страницы руководства ssh:

 -i identity_file
         Selects a file from which the identity (private key) for RSA or
         DSA authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
         tocol version 2.  Identity files may also be specified on a per-
         host basis in the configuration file.  It is possible to have
         multiple -i options (and multiple identities specified in config-
         uration files).
2
ответ дан 5 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

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