Este projeto foi definido como somente leitura porque não há mais um mantenedor ativo na organização.
Ferramenta para ajudar a manter automaticamente as configurações do cliente SSH. Ele pode ser usado para manter um banco de dados de seus logins em hosts remotos.
SSH-Config tem a capacidade de investigar (novos) hosts usando o serviço DNS e adicionar os hosts à sua configuração SSH. Além disso, ele pode se conectar a servidores SSH e descobrir quais servidores são acessíveis e quais não são.
O objetivo do SSH-Config é simplificar a manutenção das configurações do cliente SSH contendo muitos hosts. Existem mecanismos de conclusão de shell Unix que ajudam a expandir nomes de host durante a digitação, se você tiver uma configuração de cliente SSH bem mantida. É aqui que a ferramenta entra em ação.
Use-o em sua linha de comando. Existem vários casos de uso implementados:
Parâmetros completos da linha de comando:
-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
Para adicionar novos hosts à sua configuração ssh, você normalmente emite um comando como este:
$ ssh-config -d vm-alpha vm-beta vm-gamma
$
Depois disso, existem entradas no banco de dados $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"
]
},
...
e em seu $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}
...
Para atualizar os hosts existentes para sua configuração ssh, você normalmente emite um comando como este:
$ ssh-config -u
$
Depois disso, há entradas atualizadas no banco de dados $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"
]
},
...
E o host é removido porque não está mais acessível em seu $HOME/.ssh/config.
Os arquivos envolvidos são:
~/.ssh/config
: A configuração SSH que está sendo lida e gravada. As partes específicas do SSH-Config são marcadas com marcadores mágicos especiais para que a configuração não fique completamente confusa.~/.sshconfig.json
: um arquivo JSON que contém os dados de todos os hosts. É usado para rastrear quais hosts são acessíveis ou não, porque apenas hosts acessíveis são levados para a configuração do cliente SSH acima. Há um pacote Debian e um pacote CentOS fornecidos para instalação. Consulte a seção Lançamentos no Github. Ambos instalam um wrapper de shell em /usr/bin/ssh-config
.
Os requisitos do sistema para construção são
A construção pode ser acionada com o comando
mvn clean package
Direitos autorais 2018 1&1 Internet SE Direitos autorais 2019 1&1 Ionos SE
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.