Como gerenciar um arquivo de configuração SSH no Windows e Linux
Seu arquivo de configuração SSH permite definir configurações específicas para cada host SSH que facilita a conexão com esse host. Ao definir muitas dessas propriedades comuns ou incomuns dentro do arquivo, elimina a necessidade de lembrar desse conjunto de parâmetros toda vez que uma conexão é necessária.
Definindo uma conexão SSH
Se o arquivo ~ / . ssh / config não existir, você poderá criar isso agora. Normalmente, esse arquivo existe em um arquivo . ssh "oculto". diretório, oculto apenas porque a maioria dos sistemas operacionais não mostra diretórios precedidos por um .. Além disso, esse diretório geralmente está localizado no diretório inicial de um ou no diretório inicial do usuário que está executando o ssh, daí a ~ notação , significando o diretório inicial.
É importante ficar de olho nas permissões na pasta . ssh. A maioria dos clientes SSH deseja que os arquivos estejam no modo 600 nessa pasta. Ao fazer referência a esta pasta no Windows Subsystem para Linux, verifique o chmod 600 ~ \\. Ssh \\ *
Então, como é uma conexão SSH simples neste arquivo? Um exemplo de uma configuração simples está abaixo.
Host my-ssh-host HostName 10.0.0.5 Porta 22 Usuário myuser
Como você pode ver na configuração acima, isso é o mais básico possível. Na verdade, você pode omitir a porta, pois ela não é estritamente necessária porque 22 é a porta SSH padrão. Ao definir essa conexão, na linha de comando, podemos simplesmente fazer o seguinte.
ssh meu host ssh
A conexão normalmente solicita uma senha, pois uma conexão SSH não deve estar desprotegida.
Chaves públicas / privadas
Quase todos os tutoriais ou guias de configuração do SSH por aí costumam referenciar chaves públicas / privadas em um ponto ou outro. Essa é a maneira preferida de configurar uma conexão SSH. Em vez de uma senha que possa ser invadida ou adivinhada, é necessário obter o arquivo da chave. Este tutorial não mostra como criá-los, portanto, suponha que um conjunto já exista e esteja configurado corretamente. Como podemos dizer à nossa configuração de host para usar este arquivo?
Host my-ssh-host HostName 10.0.0.5 Porta 22 Usuário myuser IdentityFile ~ / . ssh / id_ed25519_myuser IdentitiesOnly yes
Existem dois novos comandos que introduzimos aqui. Os comandos IdentityFile e IdentitiesOnly. Primeiro, precisamos informar ao SSH onde está o arquivo-chave; nesse caso, armazenamos o arquivo no diretório . ssh (tenha cuidado com as permissões). Segundo, definimos uma tag denominada IdentitiesOnly. Isso instruirá o SSH a não tentar todos os arquivos de identidade dentro dessa pasta, mas apenas o definido. Por padrão, o SSH percorre e tenta todos os arquivos de identidade até encontrar o correto. Muitas vezes, isso leva a “ muitas falhas de autenticação para o usuário myuser ” no servidor de destino, se houver muitas identidades.
Configurações complexas
Existem muitos cenários que poderíamos abordar neste artigo, mas vamos passar por alguns comuns e úteis.
ForwardAgent
E se você tiver um cenário em que abriu uma conexão SSH com um servidor de destino, que precisará fazer outra conexão SSH com um segundo servidor a partir desse servidor de destino original? Você pode pensar que precisará armazenar essas mesmas chaves SSH no servidor de destino para fazer esse próximo salto. Existe um comando, apropriadamente chamado ForwardAgent, que permite "encaminhar" ” suas chaves locais para o próximo servidor no salto.
Host my-ssh-host HostName 10.0.0.5 Porta 22 Usuário myuser IdentityFile ~ / . ssh / id_ed25519_myuser IdentitiesOnly sim ForwardAgent sim
Salto Proxy
Semelhante ao ForwardAgent, geralmente é necessário abrir uma conexão SSH secundária diretamente por meio de um primeiro (ou segundo) destino. Muitas vezes, isso ocorre porque uma máquina pode estar protegida por firewall da Internet em geral, mas ter uma conexão com uma caixa de salto, ” isso permite abrir uma conexão no servidor com firewall. A partir do SSH versão 7.3 e superior, o comando ProxyJump nos permite fazer isso facilmente.
Host my-ssh-host HostName 10.0.0.5 Porta 22 Usuário myuser IdentityFile ~ / . ssh / id_ed25519_myuser IdentitiesOnly sim ForwardAgent sim ProxyJump myuser@10.0.0.6: 22, myuser2 @ 10.0.0.7: 10005 [/ PRE ]Como visto acima, existem dois servidores aqui. Inicialmente, a conexão SSH irá para 10.0.0.5, mas abrirá imediatamente uma conexão para 10.0.0.6, e finalmente abrirá uma conexão usando um usuário e porta diferentes para 10.0.0.7.
Túnel proxy SSH
E se você precisar configurar um túnel do SOCKSv5? Fazer isso é bastante fácil usando o arquivo de configuração. Estamos introduzindo três novos comandos aqui, DynamicForward, ControlMaster e ControlPath.
Host my-ssh-host HostName 10.0.0.5 Porta 22 Usuário myuser IdentityFile ~ / . ssh / id_ed25519_myuser IdentitiesOnly sim DynamicForward 8080 ControlMaster auto ControlPath ~/. ssh/%r@%h:% p [/ PRE ]O comando DynamicForward é a porta que realmente procuramos proxy em nossa conexão SSH, como a porta 8080. O ControlMaster está definido como automático, o que significa que, se houver uma conexão, use-a, mas se não criar uma nova 1. Por fim, o ControlPath define o local do arquivo de soquete real. Nesse caso, ele está usando o formato de nomeação de% r @% h:% p, que corresponde a myuser@10.0.0.5: 22 nesse caso de conexões.
Conclusão
Há muita energia no arquivo de configuração SSH. Exemplos muito mais complexos podem ser definidos, além da facilidade de definir muitos hosts diferentes em um único local. Ao fazer isso, não apenas as conexões do host estão bem documentadas, mas permitem acesso rápido e fácil na linha de comando. Se você optar por colocar esse arquivo sob controle de versão, adicione a capacidade de ter um histórico de execução de seus hosts e potencialmente poupar uma grande dor de cabeça no futuro. Como você pode ver, o arquivo de configuração SSH facilita a definição de hosts SSH!
Via: How to Geek
Nenhum comentário