Como usar chaves SSH e desativar a autenticação de senha


12

Estou tentando acessar um Mac remotamente (tenho acesso físico a este Mac) por meio do SSH de um computador cliente Linux. Meu objetivo é acessar este Mac de fora da rede. O encaminhamento de porta está configurado no roteador. No computador cliente, sou capaz de ssh user@ipacessar o IP público e posso acessar o Mac, para que o encaminhamento de porta esteja funcionando.

Agora eu quero configurar chaves SSH. Eu criei chaves SSH no meu computador cliente, mas eu queria ter o SSH Daemon na configuração do Mac primeiro. Eu editei /etc/ssh_confige defini PasswordAuthentication no. Eu reiniciei o SSH com estes comandos:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistentão sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Quando tento fazer o SSH do cliente novamente, ele ainda pede minha senha.

Dei uma olhada neste post e, a partir da resposta que adicionei UsePAM noao arquivo de configuração, reiniciei o serviço launchctlnovamente. Ainda estou sendo solicitada uma senha.

Eu também tentei a solução aqui . Ainda estou sendo solicitada uma senha.

Como configuro o meu ssh_configpara que ele não solicite a senha e aceite apenas chaves SSH? Não estou reiniciando o daemon corretamente? Há outro passo que estou faltando?

Respostas:


13

Eu estava editando o arquivo de configuração errado! Em vez de /etc/ssh_config, editei private/etc/sshd_config. Acho que isso provavelmente também funcionaria se eu editasse de /etc/sshd_configacordo com a resposta atualizada do @GhostLyrics, mas ainda não testei isso, então não posso dizer com certeza. Depois disso, reiniciei o serviço sudo launchctl stop com.openssh.sshde, em seguida, sudo launchctl start com.openssh.sshdconsegui o comportamento desejado. Aqui está o recurso onde encontrei as informações pertinentes: /superuser/364304/how-do-i-configure-ssh-on-os-x

Aqui estão as opções de configuração que eu mudei:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Depois disso, consegui gerar chaves SSH no computador cliente, movi a chave pública para ~/.ssh/authorized_keyso Mac e definir permissões para esse arquivo como 644.

É importante observar que essas permissões são para minha chave pública . Minhas permissões de chave privada estão definidas para 600 no meu computador cliente. Isso é realmente importante se você tiver sua chave pública e privada em sua ~/.sshpasta e houver vários usuários no sistema. Se suas permissões de chave privada estiverem definidas como 644, qualquer usuário poderá ler sua chave privada e se passar por você. Além disso, as permissões para a ~/.sshpasta devem ser 700.


5
Internamente, /etc/sshd_confige /private/etc/sshd_configsão o mesmo arquivo. :)
GhostLyrics

8

/etc/ssh/ssh_configé o arquivo de configuração do cliente que é usado se você não tiver um arquivo mais específico em seu diretório pessoal. O que você deseja editar é /etc/ssh/sshd_configqual é o do servidor.

Você provavelmente desejará definir PermitRootLogin without-password(ou no) e PasswordAuthentication nolá.


Atualização: Como você está executando o Yosemite, o arquivo está de /etc/sshd_configacordo com esta resposta: https://apple.stackexchange.com/a/167405/11135

Para mais elaborado por que ele ainda prompts ao definir PasswordAuthentication noem /etc/ssh/ssh_configque é importante para entender o que você configurou. "Ao fazer uma conexão de saída via SSH, não ofereça autenticação por senha."


Eu não tenho um /etc/ssh/ssh_config, apenas um /etc/ssh_config. Eu estou correndo em Yosemite. Eu tentei o PasswordAuthentication nomas ainda está me solicitando a senha.
beznez

Ah entendo. Não é isso que eu quero. Quero fazer o SSH do meu cliente Linux para o Mac com chaves e sem senha. O que devo mudar para uma conexão de entrada ?
beznez

/etc/sshd_configPasswordAuthentication no. Desculpe pela confusão. Informe-me como posso tornar a resposta mais clara. :)
GhostLyrics

Eu ainda estou tendo o mesmo comportamento. Ele solicita uma senha quando ssh da máquina Linux para o Mac.
beznez 27/01

Vamos continuar com isso no chat chat.stackexchange.com/rooms/info/34931/…
GhostLyrics
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.