Модификация ssh_config с помощью augtool
Это файл по умолчанию / etc / ssh / ssh_config, который содержит #ForwardX11 no
, который я хотел бы изменить, поэтому я делаю
augtool set "/files/etc/ssh/ssh_config/ForwardX11" yes
который терпит неудачу, но это добавляет ForwardX11 yes
после Host *
augtool set "/files/etc/ssh/ssh_config/Host/ForwardX11" yes
Вопрос
- Почему не
augtool
раскомментировать#ForwardX11 no
? - Почему я должен указать
.../Host/...
? - Почему
GSSAPIAuthentication yes
а такжеForwardX11Trusted yes
отсутствует в выводе ниже?
[root@localhost ~]# augtool ls "/files/etc/ssh/ssh_config"
#comment[1] = $OpenBSD: ssh_config,v 1.27 2013/05/16 02:00:34 dtucker Exp $
#comment[2] = This is the ssh client system-wide configuration file. See
#comment[3] = ssh_config(5) for more information. This file provides defaults for
#comment[4] = users, and the values can be changed in per-user configuration files
#comment[5] = or on the command line.
#comment[6] = Configuration data is parsed as follows:
#comment[7] = 1. command line options
#comment[8] = 2. user-specific file
#comment[9] = 3. system-wide file
#comment[10] = Any configuration value is only changed the first time it is set.
#comment[11] = Thus, host-specific definitions should be at the beginning of the
#comment[12] = configuration file, and defaults at the end.
#comment[13] = Site-wide defaults for some commonly used options. For a comprehensive
#comment[14] = list of available options, their meanings and defaults, please see the
#comment[15] = ssh_config(5) man page.
#comment[16] = Host *
#comment[17] = ForwardAgent no
#comment[18] = ForwardX11 no
#comment[19] = RhostsRSAAuthentication no
#comment[20] = RSAAuthentication yes
#comment[21] = PasswordAuthentication yes
#comment[22] = HostbasedAuthentication no
#comment[23] = GSSAPIAuthentication no
#comment[24] = GSSAPIDelegateCredentials no
#comment[25] = GSSAPIKeyExchange no
#comment[26] = GSSAPITrustDNS no
#comment[27] = BatchMode no
#comment[28] = CheckHostIP yes
#comment[29] = AddressFamily any
#comment[30] = ConnectTimeout 0
#comment[31] = StrictHostKeyChecking ask
#comment[32] = IdentityFile ~/.ssh/identity
#comment[33] = IdentityFile ~/.ssh/id_rsa
#comment[34] = IdentityFile ~/.ssh/id_dsa
#comment[35] = Port 22
#comment[36] = Protocol 2,1
#comment[37] = Cipher 3des
#comment[38] = Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#comment[39] = MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#comment[40] = EscapeChar ~
#comment[41] = Tunnel no
#comment[42] = TunnelDevice any:any
#comment[43] = PermitLocalCommand no
#comment[44] = VisualHostKey no
#comment[45] = ProxyCommand ssh -q -W %h:%p gateway.example.com
#comment[46] = RekeyLimit 1G 1h
Host/ = *
1 ответ
У Augeas нет понятия (не) комментировать. Это только позволяет вам управлять записями из файла, используя дерево, которое отображает их. Вы можете эмулировать раскомментирование записи, вставив новую запись сразу после (или до) комментария и удалив комментарий, но Augeas не сделает этого автоматически.
Когда Augeas устанавливает значение, он изменяет значение существующего узла, если он может его найти, или создает новый узел (в конце дерева) в противном случае. Однако порядок узлов в дереве имеет значение, и создание записи для глобальной настройки после Host
узел не действителен. Так что вам нужно вставить свой новый узел перед первым Host
запись:
ins ForwardX11 before Host[1]
set ForwardX11 yes
Вы также можете установить его внутри Host
запись, если вы предпочитаете, хотя это не является строго эквивалентным (см. man ssh_config
):
set Host[.='*'] * # Ensure the Host entry exists
set Host[.='*']/ForwardX11 yes
Что касается двух пропущенных записей, они не появляются в вашем выводе, потому что ls
не является рекурсивной командой использование print
если вы хотите увидеть дерево рекурсивно.