Quero alterar qual porta sshd
usa em um servidor Mac. Por exemplo, digamos da porta 22 à porta 32.
A edição /etc/sshd_config
parece não funcionar. Alguém sabe como mudar isso? Eu preferiria um método compatível com todas as versões do OSX (ou o maior número possível, pelo menos).
ssh
mac-osx
mac-osx-server
Alexander Artemenko
fonte
fonte
/usr/libexec/sshd-keygen-wrapper
(mostrado nas listas abaixo) pode iniciar um SSH diferente do especificado na própria lista. Se você gosta, sempre começa/usr/sbin/sshd
.Respostas:
Todas as respostas anteriores estão funcionando (como o Google sugere também), mas são sujas e deselegantes .
Portanto, a solução é tão simples quanto usar o número da porta em vez do nome do serviço.
Um trecho do meu editado
/System/Library/LaunchDaemons/ssh.plist
:Nota: para poder editar este arquivo no El Capitan, Sierra e provavelmente em versões futuras, você precisa desativar o SIP (System Integrity Protection). Consulte Como desabilito a proteção de integridade do sistema (SIP) [...] .
A edição acima também forçará o sshd a ouvir apenas pelo IPV4.
Após fazer alterações
ssh.plist
, o arquivo deve ser recarregado da seguinte maneira:Observe que o uso
launchctl stop ...
elaunchctl start ...
NÃO recarregará esse arquivo.A página de manual com mais informações pode ser encontrada digitando
man launchd.plist
ou usando este link .fonte
Se você quiser que o sshd escute em uma porta adicional, poderá adicionar várias entradas ao dicionário de soquetes.
Exemplo:
fonte
/System/Library/LaunchDaemons/ssh.plist
man launchd.plist
.Pelo que li (e experimentei) até agora, existem três métodos principais que podem ser usados:
Outra maneira de fazer isso, que eu pessoalmente prefiro a todos e a cada um desses métodos, porque evita mexer nos arquivos de sistema do Mac OS X é usar o socat para redirecionar a porta 22 para a porta que você desejar.
sudo mv ./socat-1.7.3.2.tar.gz /usr/local/bin/socat-1.7.3.2.tar.gz
)cd /usr/local/bin
)sudo tar -xvzf socat-1.7.3.2.tar.gz
cd ./socat-1.7.3.2
sudo ./configure && sudo make && sudo make install
)sudo socat TCP-LISTEN:2222,reuseaddr,fork TCP:localhost:22
)Você terminou e seus arquivos de sistema do Mac OS X permanecem inalterados. Além disso, esse método funciona não apenas no Snow Leopard, mas em todas as versões do Mac OS X e também em qualquer máquina na qual o socat possa ser executado.
A última coisa que você precisa fazer se usar um roteador / firewall é incluir os comandos de redirecionamento corretos no seu roteador / firewall.
Além disso, evita ficar preso no debate se o método ssh.plist, o método de serviços ou o método que é melhor, mais elegante ou pior que o outro.
Você também pode preparar facilmente um script que é executado na inicialização para reconstruir o redirecionamento socat cada vez que você reinicia sua máquina. Coloque isso em
/Library/LaunchDaemons/com.serverfault.sshdredirect.plist
:Use
sudo launchctl load -w /Library/LaunchDaemons/com.serverfault.sshdredirect.plist
para carregá-lo. Ele será carregado automaticamente em futuras reinicializações.Além disso, você também pode melhorar a segurança (i) configurando seu firewall para bloquear qualquer conexão com a porta 22 de qualquer outra interface que não seja o loopback (127.0.0.1) e (ii) faça uma alteração semelhante no seu arquivo sshd.conf para faça com que o ssh escute apenas no loopback.
Desfrutar.
fonte
/etc/services
arquivo é uma péssima idéia - isso afetará coisas como o login da chave SSH nas contas do github ou do bitbucket, que tentarão se conectar à nova porta e falharão.sudo
para instalar. Você não deve construir com privilégios elevados.<key>KeepAlive</key><true/>
.Não consegui ver isso documentado em nenhum lugar da página do manual, mas se você quiser fazer nada além de adicionar um ouvinte extra, poderá usar uma variedade de ouvintes e ter um ditado extra. Isso não requer edição do / etc / services se você usar a porta diretamente (mas lembre-se de abrir a porta no seu firewall!)
fonte
man launchd.plist
.