Этот проект доступен только для чтения, поскольку в организации больше нет активного сопровождающего.
Инструмент для автоматического поддержания конфигураций клиента SSH. Его можно использовать для ведения базы данных ваших входов на удаленные хосты.
SSH-Config имеет возможность проверять (новые) хосты с помощью службы DNS и добавлять хосты в вашу конфигурацию SSH. Благодаря этому он может подключаться к SSH-серверам и определять, какие серверы доступны, а какие нет.
Целью SSH-Config является упрощение обслуживания конфигураций клиентов SSH, содержащих множество хостов. Существуют механизмы завершения оболочки Unix, которые помогают расширять имена хостов при вводе, если у вас есть хорошо поддерживаемая конфигурация SSH-клиента. Вот тут-то и приходит на помощь инструмент.
Используйте его в командной строке. Реализовано несколько вариантов использования:
Полные параметры командной строки:
-database (-D) FILE : The database to use. (default: /home/$USER/.sshconfig.json
)
-discover (-d) : Discover hosts given in the command line using DNS.
(default: false)
-export (-e) : Export the database. Writes to stdout or file argument.
User and group parameters can be used for filtering.
(default: false)
-group (-G) GROUP : The group name to use for the entry for discovery or
export filtering.
-help (-h) : Show this command line help. (default: true)
-import (-i) : Import a database. Reads either from argument or stdin.
(default: false)
-sshcfg (-s) FILE : The ssh config to update. (default:
/home/$USER/.ssh/config)
-update (-u) : Update all database hosts IP addresses. (default: false)
-user (-U) USER : The user name to use for the entry for discovery or
export filtering.
$HOME/.ssh/config
Чтобы добавить новые хосты в вашу конфигурацию ssh, вы обычно вводите такую команду:
$ ssh-config -d vm-alpha vm-beta vm-gamma
$
После этого в базе данных $HOME/.sshconfig.json
появляются записи.
...
{
"name" : "vm-alpha",
"createdAt" : 1504778353193,
"enabled" : true,
"fqdn" : "vm-alpha.foo.domain",
"sshServerVersion" : "SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3",
"id" : "a7369847-e833-49bd-af95-e0d1292b3ed6",
"updatedAt" : 1520958429041,
"ips" : [
"10.123.123.123"
]
},
...
и в вашем $HOME/.ssh/config:
...
# <<< BEGIN{a7369847-e833-49bd-af95-e0d1292b3ed6}
Host vm-alpha
Hostname vm-alpha.foo.domain
Hostname 10.123.123.123
# >>> END{a7369847-e833-49bd-af95-e0d1292b3ed6}
...
Чтобы обновить существующие хосты до вашей конфигурации ssh, вы обычно вводите такую команду:
$ ssh-config -u
$
После этого в базе данных $HOME/.sshconfig.json обновляются записи.
...
{
"name" : "vm-alpha",
"createdAt" : 1504778353193,
"enabled" : false,
"fqdn" : "vm-alpha.foo.domain",
"sshServerVersion" : "SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3",
"id" : "a7369847-e833-49bd-af95-e0d1292b3ed6",
"updatedAt" : 1520959605730,
"ips" : [
"10.123.123.123"
]
},
...
И хост удаляется из-за того, что в вашем $HOME/.ssh/config он больше не доступен.
Используемые файлы:
~/.ssh/config
: конфигурация SSH, которая читается и записывается. Конкретные части SSH-Config отмечены специальными магическими маркерами, поэтому конфигурация не испортится полностью.~/.sshconfig.json
: файл JSON, содержащий данные для всех хостов. Используется для отслеживания того, какие хосты доступны, а какие нет, поскольку в приведенную выше конфигурацию SSH-клиента учитываются только доступные хосты. Для установки предоставляются пакеты Debian и CentOS. Пожалуйста, посетите раздел «Релизы» на Github. Оба устанавливают оболочку оболочки в /usr/bin/ssh-config
.
Системные требования для сборки:
Строительство можно запустить командой
mvn clean package
Авторские права 1&1 Internet SE, 2018 г. Авторские права 1&1 Ionos SE, 2019 г.
Лицензия Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. Лицензию для определения конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.