Ativar login apenas com chave ssh no meu Mac para 1 usuário

21

Eu tenho um Macbook Air ao qual gostaria de permitir acesso SSH remoto sem uma senha. Criei um usuário com o remotepairqual fiz login e verifiquei que posso usar o Mac. Também adicionei esse usuário à lista de usuários permitidos do serviço "Remover login" e ativei o serviço. Tudo isso foi feito no painel de controle "Compartilhamento".

Eu peguei a chave pública de outro computador e a adicionei ao arquivo /Users/remotepair/.ssh/authorized_keys. Quando o outro computador ssh remotepair@<my ip>ainda recebe uma solicitação de senha.

Como desabilito esta solicitação de senha?

Jason
fonte
11
Eu recomendo adicionar "Autenticação apenas de chave SSH" ao título da sua pergunta - a forma como ela é lida agora soa como um login normal da janela de login da GUI.
N

Respostas:

27

Para desativar a autenticação de senha, você precisa editar /etc/sshd_config. Em Terminal:

sudo vim /etc/sshd_config

(ou substitua pelo seu editor favorito)

Procure a linha:

#ChallengeResponseAuthentication yes

E mude para:

ChallengeResponseAuthentication no

Ou seja, remova o #no início e mude yespara no.

Todos os logins ssh subsequentes agora exigirão que você use uma chave ssh e não solicitará uma senha. Certifique-se de que sua chave ssh funcione antes de fazer isso, se você não tiver acesso local! Não há necessidade de reiniciar o daemon ssh ou qualquer coisa, pois ele é iniciado sob demanda para cada nova conexão de entrada. Observe que você também pode ver uma PasswordAuthenticationlinha, mas isso nojá é padrão .

Se suas chaves ssh não estão funcionando, isso é um problema separado, na verdade, mas isso responde à pergunta como é colocada agora :)

Césio
fonte
Também preciso adicionar o usuário à configuração AllowUser. Só posso supor que a configuração da GUI também não modificou essa linha de texto.
31412 Jason
7
Observe que, nas versões posteriores do Mac OS X (definitivamente em El Capitan), o sshd_config foi movido para /etc/ssh/.
21416 zelk
2
Observe que, no MacOS Sierra (v10.12.x), o padrão para PasswordAuthenticationmudou para yes, portanto, altere para no.
Travis Clarke
3

Para atualizar a resposta para o macOS Sierra (especificamente 10.12.6), parece que o arquivo de configuração está agora /etc/ssh/sshd_config

2 linhas devem ser descomentadas + modificadas para desativar totalmente a autenticação de senha: (Essas são as linhas de 57 a 62, inclusive, no sshd_configarquivo padrão )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Como mencionado anteriormente, você pode ativar / desativar o acesso ssh a partir da GUI System Preferences.app, e nenhuma reinicialização do daemon é necessária entre a edição da configuração.

Ivan G.
fonte
1

Você deve verificar as permissões dos diretórios envolvidos: /Users/remotepair/e /Users/remotepair/.ssheles não devem permitir acesso de gravação por "outros" usuários. Meu .sshtem direitos de acesso apenas para o proprietário.

Além disso, no sistema remoto, faça um ssh -v remotepair@yoursystempara ver quais métodos de autorização são permitidos e tentados. Lookout for Authentications that can continue: publickey,password,keyboard-interactive. Talvez você precise ativar o RSAAuthenticationseu sistema.

vilmoskörte
fonte
1

Em um sistema de teste aqui, desabilitar o prompt SSH exigia a adição das duas linhas a seguir /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Os comentários sshd_configtambém sugerem que a seguinte linha seja adicionada:

UsePAM no
lava37
fonte