Acabei de criar um novo servidor virtual Ubuntu e estou no processo de fortalecê-lo para uso em produção. Atualmente, tenho uma conta root. Eu quero fazer o seguinte:
- Crie um novo usuário (vamos chamá-lo
jim
pelo resto disso). Eu quero que eles tenham um/home/
diretório. - Conceda
jim
acesso SSH. - Permitir
jim
que o usuário façasu
root, mas não executesudo
operações. - Desative o acesso SSH raiz.
- Mova o SSHd para uma porta não padrão para ajudar a interromper ataques brutos.
Meu problema está nos dois primeiros itens. Eu já encontrei, useradd
mas por algum motivo, não consigo fazer login como um usuário criado com ele pelo SSH. Preciso vencer o SSHd para permitir isso?
/etc/nologin
arquivo, mas está vazio. Eu o apaguei e reiniciei o ssh, mas ele ainda está respondendoPermission denied, please try again.
quando tento fazer login.Respostas:
Edite (como root)
/etc/ssh/sshd_config
. Acrescente o seguinte:Port 1234
faz com que o SSH escute na porta 1234. Você pode usar qualquer porta não utilizada de 1 a 65535. É recomendável escolher uma porta privilegiada (porta 1-1024) que pode ser usada apenas pela raiz. Se o seu daemon SSH parar de funcionar por algum motivo, um aplicativo não autorizado não poderá interceptar a conexão.PermitRootLogin
não permite o login raiz direto.AllowUsers jim
permite que o usuáriojim
efetue login através do SSH. Se você não precisar fazer login de qualquer lugar, poderá torná-lo mais seguro restringindo jim a um endereço IP (substitua 1.2.3.4 pelo seu endereço IP real):As alterações no arquivo de configuração
/etc/ssh/sshd_config
não são aplicadas imediatamente. Para recarregar a configuração, execute:fonte
root
login, no entanto, (talvez você ainda está configurando o servidor), você deve definirPermitRootLogin
ayes
e também adicionarroot
aAllowUsers
.useradd -m -G sudo,adm -s /bin/bash mecharok
epasswd mecharok
AllowUsers username1,username2
para restringir logins SSH a esses usuários. Verifique sesshd
está recarregado. Se isso não ajudar, crie uma nova pergunta.O SSH é muito exigente quanto às permissões de diretório e arquivo. Certifique-se de que:
Copie sua chave pública no arquivo allowed_keys.
Há NO necessidade de adicionar o usuário a / etc / ssh / ssh_config.
fonte
~./ssh
como root e nunca dei propriedade ao usuário./root/.ssh/authorized_keys
vez de/home/bob/.ssh/authorized_keys
.ssh_config
. Configurar esse diretório e arquivo foi suficiente.sudo su --login {user}
) e executarssh-keygen
-> A pasta ".ssh", a chave + cert e as permissões estão concluídas. Basta criar o author_keys conforme suas instruções.Haverá pistas sobre
/var/log/auth.log
por que o SSH (ou PAM) está rejeitando a tentativa de login. Pistas adicionais podem ser encontradas usando a-v
opção com o cliente ssh . Várias situações comuns, algumas mencionadas nas outras respostas:man passwd
, tente redefinir a senha ou verificar o conteúdo de/etc/shadow
)./etc/ssh/sshd_config
é configurada para impedir o início de sessão (DenyUsers
,AllowUsers
,PasswordAuthentication
,PubkeyAuthentication
,UsePAM
etc, verman sshd_config
)./etc/shells
./etc/ssh
,/home/jim/.ssh
,/home/jim/.ssh/*
, etc.Eu também recomendo o uso de adduser (em vez de useradd ) para adicionar novos usuários; é um pouco mais amigável sobre várias configurações de conta padrão.
Enquanto o usuário não fizer parte do
admin
grupo, ele não poderá fazer o sudo para fazer root. Para eles usarem su , você precisará definir uma senha de root (passwd root
), após o qual eu recomendo configuraçãoPermitRootLogin=no
em/etc/ssh/sshd_config
.fonte
Posso estar errado, mas sempre tenho que instalar o daemon do servidor antes de conectar (pelo menos na área de trabalho) ssh é instalado por padrão, mas esse é apenas o cliente
este comando instala o servidor
sudo apt-get install openssh-server
Você pode alterar a porta e interromper o login root editando
/etc/ssh/sshd_config
Isso requer que você reinicie o serviço.
sudo service ssh restart
fonte
sudo /etc/init.d/ssh reload
, mas boas informações, no entanto.Jim não terá acesso SSH até você definir uma senha. Como root execute:
Se este comando retornar um "!" caractere, o login está desativado para esta conta. A execução
passwd jim
como root solicitará uma sequência de senha nova e confirmada, após a qual o comando grep acima deve retornar uma sequência de hash representando a senha para jim.Verifique também se o jim possui um shell de login, definido por padrão, e um diretório inicial que exista.
Observe a publicação de lekensteyn para obter informações sobre como modificar as configurações do servidor SSH.
fonte
No meu caso, eu tinha um grupo que tinha acesso permitido e o usuário não fazia parte dele. Isso resolveu para mim.
Usando o exemplo acima com o usuário
jim
e assuma o membro do grupojim
como único grupo (emita ogroups
comando enquanto estiver conectadojim
para encontrar os grupos dos quais você faz parte). No meu/etc/ssh/sshd_config
arquivo, eu tinhaAllowGroups sshusers
entrada e, portanto, precisava adicionarjim
aosshusers
grupo. Abaixo está como isso seria realizado:Substitua seu grupo e usuário conforme apropriado para sua configuração.
fonte
jim
como usuário fictício para ajudar a fornecer contexto. o artigo aqui explica bem.Pode haver algumas instâncias que
PasswordAuthentication
estão desativadas por padrão.Verifique
/etc/ssh/sshd_config
e verifique se oPasswordAuthentication
atributo está definido comoyes
.fonte
@Lekensteyn Não consigo deixar um comentário na resposta da pergunta porque não tenho reputação - mas tentei anexar
no meu arquivo / etc / ssh / sshd_config e agora não posso mais ssh com o meu existenteUsuário ou o novoUsuário.
fonte
AllowUsers existingUser@* newUser@*