Ativar SSH em um Mac no modo de usuário único

10

Eu tenho um iMac que posso acessar apenas no modo de usuário único, devido a sérios danos ao hardware. Liguei a ele outro computador com um cabo Ethernet. Gostaria de fazer login remotamente no iMac por meio do SSH. O iMac está executando o OS X 10.6.4.

Me deparei com respostas semelhantes, mas o que eu tentei sempre falhava.

Eu tentei systemsetup -setremotelogin one ele retorna a seguinte mensagem de erro:

systemsetup[63:903] setInetDServiceEnabled failed for ssh because authorizationRef is NULL!

Enquanto launchctl load -w /System/Library/LaunchDaemons/ssh.plistdá:

DNSServiceRegister("ssh"): -65563
DNSServiceRegister("sftp-ssh"): -65563
bind(): Can't assign requested address
launch_msg(): Socket is not connected
launchctl: CFURLWriteDataAndPropertiesToResource(/var/db/launchd.db/com.apple.launchd/overrides.plist) failed: -10

O que devo fazer?

Ralphtor
fonte
Can't assign requested addressparece-me que não tem nenhum tipo de conexão de rede. Eu acho que no modo de usuário único você teria que usar ifconfigou ifupativar a rede.
Blacklight Shining
@BlacklightShining thanks! Tenho pouca experiência com esses comandos, acho que com um Mac seria mais apropriado usar networksetupou ipconfig, no entanto. Você tem alguma idéia sobre quais comandos devo dar para que outro computador se conecte ao iMac por meio de um único cabo Ethernet? Ou, como alternativa, conectar o iMac a uma rede wi-fi protegida com WPA2?
9117 Ralphtor
Eu não tenho certeza. Você pode obter a página de manual para quase qualquer programa com man $program_name, a propósito. Vou dar uma olhada e ver se consigo chegar a algo para você tentar ...
Blacklight Brilhante

Respostas:

8

Parece que você precisa carregar mais algumas dicas:

launchctl load /System/Library/LaunchDaemons/com.apple.kextd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.notifyd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.configd.plist
launchctl load /System/Library/LaunchDaemon/com.apple.DirectoryServices.plist

Em seguida, faça o que você tentou antes:

launchctl load -w /System/Library/LaunchDaemons/ssh.plist
systemsetup -setremotelogin on

Depois disso, acho que você pode simplesmente conectar o cabo Ethernet nos dois computadores para criar uma rede ad-hoc. ifconfig en0 | grep inetna máquina de destino, você deve obter o endereço IP e, em seguida, tudo pronto. :)

Luz Negra brilhando
fonte
Obrigado pelo seu conselho, os primeiros comandos foram bons. Infelizmente para o último comando do computador respondeu com: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, com estas duas mensagens repetido duas vezes. Portanto, não consigo conectar-me ao ssh. Lembro-me vagamente de ter alterado a porta para as conexões ssh recebidas, por isso provavelmente é minha culpa, mas agradeceria qualquer ajuda.
Ralphtor
Devo esclarecer: launchctl load -w /System/Library/LaunchDaemons/ssh.plistme dá o erro que mencionei no comentário anterior, enquanto systemsetup -setremotelogin oncontinua dandosetInetDServiceEnabled failed for ssh because authorizationRef is NULL!
Ralphtor 10/10/12
Você se lembra de como mudou a porta? Você poderia mudar de volta? Isso pode não fazer nada, mas vale a pena tentar ...
Blacklight Shining
Eu li os arquivos de configuração, parece que a porta está definida corretamente como 21. Provavelmente não foi esse o problema, porque segui as instruções para outro Mac e o ssh deu os mesmos erros. Por uma questão de honestidade, o Mac que testei era um Mac mini com Lion e reclamou que com.apple.DirectoryServices.plistnão existe mais (como foi removido no Lion), mas isso não deve ser um grande problema, porque o ssh me deu exatamente o mesmo erro que no iMac.
Ralphtor 11/07/12
3

Três soluções que você poderia considerar. Primeiro, tente o modo de disco de destino. Se o modo de usuário único funcionar, o modo de disco de destino também funcionará.

Depois de iniciado no modo de disco de destino, conecte-o ao outro sistema que você possui (usando o firewire) e diga ao segundo sistema para inicializar externamente (mantenha pressionada a opção na inicialização). Quando o sistema operacional no sistema danificado inicializar usando o hardware do sistema local, abra as Preferências do Sistema e clique em "Compartilhamento". Marque a caixa de seleção ao lado de "Login Remoto" para habilitá-lo.

Desligue e reinicie, e você deve ter o SSH em funcionamento.

Uma segunda opção é remover o disco rígido do sistema danificado e inicializá-lo externamente (em um gabinete externo) ou colocá-lo dentro do sistema funcional e inicializá-lo a partir daí.

Se nenhum deles funcionar, mas você estiver executando um único usuário, considere

cd /Library/Preferences
echo -n enabled > com.apple.ScreenSharing.launchd

Isso ativará o compartilhamento de tela, use-o para acessar as Preferências do Sistema na máquina remota, faça as alterações (ative o SSH) e você estará funcional.

Everett
fonte
0

Por que não iniciar o sshd diretamente? Quando a rede estiver /usr/sbin/sshd -p 4212aberta, será aberto um servidor ssh na porta 4212.

cdelacroix
fonte
Obrigado pela sua resposta. Eu executei o comando (por curiosidade, gostaria de perguntar por que era necessário escrever o caminho completo /usr/sbin/). Se eu rodar topno iMac, vejo um processo chamado sshd, então ele deveria ter funcionado. No entanto, quando eu ligar com um computador com um cabo Ethernet, olhar para o IP do iMac com ifconfig, e correr ssh 192.168.0.3 -p 4212no outro computador que dizssh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor
Devo também mencionar que shutdown -h nowagora não funciona para desligar o iMac. Eu tive que desligá-lo manualmente
Ralphtor
Costumo escrever caminhos completos em minhas respostas para evitar surpresas devido a variáveis ​​PATH mal configuradas. Eu uso esse comando frequentemente e funciona para mim, nos 10.6 e 10.7, embora não seja no modo de usuário único, tenho que admitir. Você está se conectando no ssh como root?
Cdelacroix
Como eu me conecto como root? Tentei ssh [email protected] -p 4212e até tentei com os nomes de usuários de outras contas configuradas no iMac e sempre o tempo limite. Se eu usar outra porta, em vez de 4212, ela reclama "Conexão recusada", então algo deve estar funcionando, porque parece responder à porta correta. No entanto, eu ainda não consigo me conectar #
Ralphtor
O servidor pode não ser capaz de gerar um shell? Você pode tentar ssh -vvv [email protected] -p 4212ver (realmente) a saída detalhada do lado do cliente, ou mesmo do lado do servidor, colocar ssh no modo de depuração para ver o que está acontecendo (com sshd -d -p 4212).
Cdelacroix