Ключи SSH Keepass Keeagent Как интегрироваться с bash-терминалом?

Следующая команда должна работать,

sed -r 's/Ticket_[A-Za-z0-9]+/Ticket_Final/g'

Где,

  • -r:Использование расширенных регулярных выражений
  • s:Для поиска и замены непрерывного длинного потока
  • [A-Za-z0-9]+:Несколько буквенно-цифровых букв содержат A-Z, a-z,0-9

Если это работает, вы можете использовать флаг -iдля изменения изменений в исходном файле, как показано ниже:

[arif@arif ~]$ sed -ri 's/Ticket_[A-Za-z0-9]+/Ticket_Final/g' filename.xml

Например, вы работаете со следующими XML,

[arif@arif ~]$ cat /tmp/temp.xml 
<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note    (to,from,heading,body)>
  <!ELEMENT to      (#Ticket_Release1)>
  <!ELEMENT from    (#Ticket_V2)>
  <!ELEMENT heading (#Ticket_V3)>
  <!ELEMENT body    (#Ticket_Release2)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>String Replacer</heading>
<body>These text shouldn't be changed despite of containing Ticket Release1 V2!</body>
</note> 

После применения команды

[arif@arif ~]$ cat /tmp/temp.xml | sed -r 's/Ticket_[A-Za-z0-9]+/Ticket_Final/g'
<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note    (to,from,heading,body)>
  <!ELEMENT to      (#Ticket_Final)>
  <!ELEMENT from    (#Ticket_Final)>
  <!ELEMENT heading (#Ticket_Final)>
  <!ELEMENT body    (#Ticket_Final)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>String Replacer</heading>
<body>These text shouldn't be changed despite of containing Ticket Release1 V2!</body>
</note> 
0
18.09.2021, 16:53
2 ответа

Думаю, теперь я понял это довольно последовательно. Проверено со свежей загрузкой, все работает. Но с большой оговоркой.

Сначала я отредактировал параметры keeagent следующим образом:

  • Режим агента:Agent
  • Путь:/home/$USER/.ssh-keeagent.sock

Затем я добавил строку в.bashrc :export SSH_AUTH_SOCK="/home/$USER/.ssh-keeagent.sock"

Я почти уверен, что агент ssh -запускается автоматически при загрузке (почти уверен, что сделал это случайно ), который обрабатывает ключи для openssh.

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

Возможно, этого можно избежать, используя.ssh/config. Но я еще не заморачивался с этим.

Но пока загружен один ключ, я могу открыть терминал и ввести ssh user@IP, и он подключается. Я даже получаю небольшое уведомление от Keepass о том, что ключ был использован в другом приложении.

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

Похоже, мне удалось решить проблему, используя открытые ключи в ~/.ssh/config в IdentityFile.

Host hostname
        Hostname IP
        User user
        IdentityFile ~/.ssh/key.pub
        IdentitiesOnly yes

Со всеми загруженными ключами, показанными в ssh-add -l, я могу просто вызвать хост ssh hostname, и он выберет правильный закрытый ключ на основе открытого ключа, указанного в конфигурации.

0
18.09.2021, 18:55

Это не будет работать с клиентом openSSH. Он предназначен для использования с приложениями с графическим интерфейсом, такими как PuTTy или KiTTy, где вы выбираете ключевой файл, просматривая; Стиль Windows -.

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

0
18.09.2021, 17:54

Теги

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