Estou tentando vincular meu novo laptop rodando 11.10 ao meu antigo laptop rodando 8.04 através do meu roteador usando SSH.
Esta pergunta é feita e respondida no ubuntuforums aqui:
http://ubuntuforums.org/showthread.php?t=1648965
Achei que seria útil ter uma resposta mais definitiva aqui.
Nota: eu precisava primeiro instalar o openssh-server no laptop ao qual estava tentando me conectar e abrir a porta SSH em meu firewall usando o firestarter.
Responder1
Você pode restringir o acesso ao seu servidor ssh de várias maneiras.
O mais importante da IMO é usar chaves ssh e desabilitar a autenticação por senha.
Consulte as seguintes páginas wiki para obter detalhes
- https://help.ubuntu.com/community/SSH/OpenSSH/Keys
- https://help.ubuntu.com/community/SSH/OpenSSH/Configurando#Disable_Password_Authentication
Você pode restringir o acesso a uma sub-rede específica de diversas maneiras. Presumo que seu servidor ssh esteja na sub-rede 192.168.0.0/16 com um endereço IP de 192.168.0.10, ajuste de acordo;)
Roteador
Uma linha de defesa é usar um roteador. Certifique-se de desabilitar o UPnP e não permitir o encaminhamento de porta.
Configuração SSH
Você pode definir diversas opções em /etc/ssh/sshd_config
. Um é o endereço de escuta. Se você definir um endereço de escuta em sua sub-rede. Um privadoendereço de IPnão é roteável pela Internet.
ListenAddress 192.168.0.10
Você também pode usar o AllowUsers
AllowUsers [email protected]/16
Algo relacionado, você também pode alterar a porta
Port 1234
Ver:http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html
Invólucro TCP
Conforme descrito na postagem do fórum, você pode usar TCP Wrapper . O wrapper TCP usa 2 arquivos /etc/hosts.allow
e/etc/hosts.deny
Edite /etc/hosts.allow
e adicione sua sub-rede
sshd : 192.168.0.
Edite /etc/hosts.deny
e negue tudo
ALL : ALL
Veja também:http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/
Firewall
Por último, você pode proteger seu servidor. Você pode usar iptables, ufw ou gufw.
iptables
sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT
Por favor, não use DROP
emiptables
.
ufw
sudo ufw allow from 192.168.0.0/16 to any port 22
ufw
tem uma interface gráfica: gufw
Responder2
ATUALIZAÇÃO DE 2020
Dada esta questão, agora é possível uma abordagem menos complexa usando a Match
palavra-chave, introduzida emOpenSSH 6.5/6.5p1 (2014):
Nosshdarquivo de configuração ( /etc/ssh/sshd_config
emDebiane sistemas operacionais derivados, comoUbuntu)
# Disable all auth by default
PasswordAuthentication no
PubkeyAuthentication no
[.. then, at the end of the file ..]
# Allow auth from local network
Match Address 192.168.1.*
PubkeyAuthentication yes
# if you want, you can even restrict to a specified user
AllowUsers stephan
Dica: é melhor colocar suas regras personalizadas em um arquivo na /etc/ssh/sshd_config.d
pasta. Normalmente /etc/ssh/sshd_config.d/local_network_only.conf
. Isso evita conflitos ao atualizar para uma nova versão do pacote ssh-server altera o arquivo de configuração sshd.
man sshd_config
para mais detalhes
Responder3
ssh (secure shell) é usado para acessar e transferir dados com segurança (usou o par RSA_KEYS). Você pode acessar dados usando ssh de duas maneiras 1. Linha de comando 2. usando o navegador de arquivos
Linha de Comando: Para isso você não precisa instalar nada. A primeira tarefa é fazer login em outro computador.
ssh other_computer_username@other_computer_ip
Este comando solicitará uma senha que é a senha do outro computador (para um nome de usuário específico). Você acabou de fazer login no shell de outro computador. Pense que este terminal é como o terminal shell do seu computador. Você pode fazer tudo usando shell para outro computador que você pode fazer no seu computador
Navegador de arquivos: você precisa instalar o openssh-server
sudo apt-get install openssh-server
Para fazer login vá em arquivo->connectToServer