O
SSH é dividido em dois módulos, um chamado "sshd", que é o módulo servidor, um serviço que fica residente na máquina que será acessada, enquanto que o "ssh" é o módulo cliente, um utilitário que você utiliza para acessar o servidor ssh.
1) Instalar o pacote openssh-server:
# apt-get update
# apt-get install openssh-server (no Debian e derivados)
# yum update
# yum install openssh-server (no Fedora e derivados)
2) Após instalar o pacote do SSH, ativar o serviço do mesmo. Por padrão na maioria das distribuições ele é configurado para subir no boot automaticamente, mas não custa verificar:
# /etc/init.d/ssh start (no Debian e derivados)
# service sshd start (no Red Hat, Mandriva, Fedora e CentOS)
Obs.: No CentOS, caso você instale o pacote do servidor SSH depois da instalação do sistema, é preciso configurar o serviço do ssh para inicializar junto com o sistema, através do comando:
# chkconfig sshd on (onde "sshd" é o nome do serviço do servidor SSH no CentOS)
3) Por padrão o protocolo SSH escuta na porta 22, onde passa a ser necessário liberá-la no firewall, case utilize um. O pacote do servidor SSH chama-se "openssh-server" e o pacote do cliente SSH chama-se "openssh-client", onde é possível realização da instalação somente de um deles mediante as necessidades.
Configuração do cliente SSH
Vamos abordar as principais opções que deve conter o arquivo de configuração do cliente SSH (nesse caso, o acesso será feito através de um cliente
Linux a um servidor Linux).
As configurações do cliente SSH vão no arquivo
/etc/ssh/ssh_config.
Exemplo do arquivo de configuração do cliente SSH (/etc/ssh/ssh_config):
ForwardX11 no
#Opção para "rodar" aplicativos gráficos remotamente via SSH.
#Para funcionar, essa opção deve estar habilitada no cliente - ForwardX11 yes - e
#também no servidor SSH. Vale ressaltar que o uso do modo gráfico no SSH
#é recomendado somente em uma rede local, e não na Internet, pois o
#protocolo do X é otimizado somente para uso local, sendo que para uso na
#Internet o mesmo irá consumir muita banda e apresentará muita lentidão,
#mesmo em conexões rápidas);
Compression = yes
#Essa opção, quando ativada, permite ativar a compressão dos dados através
#do do programa gzip. Com o seu uso há um ganho de performance em servidores
#que estão acessíveis via Internet;
Port 22
#Essa opção indica em qual porta o cliente SSH deve se conectar no servidor SSH.
#Lembrando que para funcionar, essa mesma porta deve estar configurada para
#o protocolo "escutar" no servidor SSH);
ServerAliveInterval 120
#Essa opção permite que a conexão do cliente SSH e o servidor não seja encerrada
#depois de alguns minutos de inatividade. Você pode especificar um tempo em
#segundos para que o cliente ssh envie pacotes periodicamente para o servidor ssh,
#com o objetivo de manter a conexão ativa);
Obs.: Como parte da segurança do SSH, ele utiliza um sistema de chaves assimétricas para verificar a identidade do servidor. O servidor possui uma chave pública, que é enviada ao cliente na primeira conexão. As identificações de todos os servidores conhecidos ficam armazenadas no arquivo .ssh/know_hosts, dentro do diretório home do usuário.
Caso ocorra algum problema ao se conectar ao servidor SSH devido a suspeita da chave remota - chave do servidor - ter sido alterada na tentativa de um ataque), basta remover a identificação do servidor no arquivo .ssh/know_hosts através do comando:
# ssh-keygen -R <Endereço IP do Servidor SSH>
# ssh-keygen -R 192.168.1.10
Com isso a identificação é removida e substituída por uma identificação de backup, que é feita antes do primeiro acesso por segurança. Isso pode ser feito excluindo o conteúdo do arquivo manualmente também.
As opções omitidas recebem valores padrões, onde somente é aconselhável inserir no arquivo as opções que conhece, com seus respectivos valores e também mediante a necessidade.