SSH sem senha no OS X Mountain Lion

O SSH é um serviço de rede que permite fazer um login seguro em máquinas remotas. Basicamente, informa-se o login, o nome (ou endereço) da máquina à qual deseja-se conectar e depois a senha. Dependendo do uso que se faz do SSH, pode ser necessário e/ou conveniente configurar o software para guardar as senha com uma chave pública de forma que o login é feito de forma automática, sem a necessidade de perdir uma senha a cada pedido de login. De forma semelhante, quando trabalha-se com processamente paralelo utiizando, por exemplo, o MPI, é necessário que a máquina seja configurada para fazer o login no localhost sem pedir senha. Neste caso, isto acontece porque cluster são geralmente configurados em rede e para que a compilação possa aproveitar os processadores das diferentes máquinas localmente, é necessário que todas as máquinas sejam acessíveis na rede. Você consegue imaginar como seria a compilação e a execução de uma grande software de forma paralela em um ambiente de rede e tendo que digitar a senha de login das máquinas a todo instante? No caso dos processadores multicore, a situação é bastante semelhante: os softwares que podem tirar vantagem de máquinas com este tipo de processadore, enxergam cada um dos cores como um processador independente. Então, torna-se necessário configuarar a máquina em questão para que ela possa acessar ela mesma através do terminal via SSH. Confuso? É um pouco, mas é bastante simples.

Em uma máquina Linux, podemos gerar uma chave pública com os seguintes comandos:

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2

No OS X Mountain Lion, o processo é bastante semelhante e requer uma configuração adicional:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Mas para que tudo funcione, é preciso configurar o OS X Mountain Lion para permitir logins remotos. Para isto, basta abrir o painel de “Preferências do Sistema” (System Preferences), clicar no ícone “Compartilhamento” (Sharing) e marcar a opção “Login Remoto” (Remote Login).

Painel de Preferências do Sistema

Depois disso, basta testar:

$ ssh localhost

Referências:

Habilitando o servidor Apache no Mac OS X Mountain Lion

Ter um servidor Apache instalado na sua máquina, seja um notebook ou desktop, é uma mão na roda quando se precisa testar um website, permitindo até que outros computadores na rede possam acessá-lo, ajudando-o a testar o site em diferentes navegadores, em diferentes sistemas operacionais (acredite, o Firefox, o Opera  e o Chrome do windows, podem rendererizar diferentemente no linux).

Quando eu comprei o meu MacBook Pro, logo descobri como habilitar o Apache com PHP, e isso foi muito fácil, tal como descrevi aqui.

Mas depois que atualizei para o Mac OS X Mountain Lion, não percebi um detalhe: a opção para habilitar o “Web Sharing” (ou Compartilhamento Web) no painel de controle do Mac OS X, sumiu! Procurando na internet, encontrei este link que ensina a habilitar o servidor Apache do Mac OS X Mountain Lion, mesmo sem ter a opção no painel de controle. Se você está acostumado com o Linux, vai perceber que os procedimentos são muito parecidos – para não dizer praticamente os mesmos. Para facilitar um pouco as coisas, vou resumir os comandos aqui.

Procedimentos

O primeiro passo, é entrar na pasta “/etc/apache2/users/” e criar um arquivo de configuração com o seu nome de usuário:

$ cd /etc/apache2/users/
$ sudo touch `whoami`.conf

A seguir, inclua as seguintes linhas nesse arquivo:

<Directory "/Users/usuario/Sites/">
     Options Indexes MultiViews
     AllowOverride All
     Order allow,deny
     Allow from all
</Directory>

Observe que a palavra “usuario” deve ser substituída pelo seu nome de usuário, que pode ser obtido a partir do comando “whoami” 🙂

Depois, basta iniciar o Apache com o seguinte comando:

$ sudo apachectl start

Dessa forma, o Apache será desabilitado quando você desligar o computador. Caso queira encerrar o Apache antes, basta executar o seguinte comando:

$ sudo apachectl stop

Para terminar a configuração, ajuste as permissões de acesso ao Apache com os seguintes comandos:

$ sudo chown root:wheel /etc/apache2/users/*
$ sudo chmod 644 /etc/apache2/users/*

Para acessar os sites que você estiver editando/testando, basta colocá-los na pasta “Sites” no seu home (se ela não existir, basta criá-la) e digitar o seguinte endereço no seu navegador:

http://localhost/~usuario

Lembrando que “usuario” é o seu nome de usuário. Para que outros computadores da rede possam acessar o seu computador a partir do navegador, basta fornecer o endereço de IP ou o nome da máquina. Exemplos, “http://nome.da.maquina/~usuario&#8221; ou “http://123.456.789/~usuario&#8221;.

Dicas

Se você quiser deixar o Apache ativo o tempo todo, mesmo depois de reiniciar o computador, basta executar o comando:

$ sudo defaults write /System/Library/LaunchDaemons/org.apache.httpd Disabled -bool false

… e se quiser desfazer esse comando (ou seja, fazer com que o Apache não inicie sozinho depois de ligar o computador), basta fazer:

$ sudo defaults write /System/Library/LaunchDaemons/org.apache.httpd Disabled -bool true

Referência

Utilizando a VPN através do Tunnelblick

O Tunnelblick é um software que utiliza o openvpn e fornece uma interface gráfica simples e funcional para gerenciar conexões VPN. Ele é bastante útil para quem precisa gerenciar várias conexões VPN. No meu caso, tenho apenas uma conexão disponível e por isso utilizava um script fornecido pelo administrador dos sistemas que eu uso. Aliás, por utilizar o Mac OS X, um dos requisitos para que minha conexão VPN funcione é a utilização do Tunnelblick, porque o script fornecido pelo administrador utiliza o openvpn que vem junto com o Tunnelblick. Mas isso não é uma necessidade real, pois pode-se instalar o openvpn através do port do Mac OS (sudo port install openvpn), embora a versão disponível no port seja mais antiga.

Neste artigo, vou mostrar rapidamente como configurar uma conexão VPN através do Tunnelblick para poder aproveitar melhor o que este software tem de bom.

Se você não tem o Tunnelblick, pode baixá-lo neste link (link direto). Como estou utilizando o OS X Mountain Lion, preciso da versão 3.3 beta 21a do Tunnelblick. Se você utiliza outra versão do Mac OS X, verifique qual versão melhor se adequa ao seu Mac. Instale o Tunnelblick e inicie a configuração da sua VPN.

Depois de instalar o Tunnelblick e abrí-lo pela primeira vez, o configurador irá perguntar se você tem arquivos de configuração ou não. Vou clicar na opção “I have configuration files” (ou Eu Tenho Arquivos de Configuração), pois vou aproveitar os arquivos de configuração do meu script VPN:

Configurando o Tunnelblick: utilizando arquivos de configuração externos

No passo seguinte, o Tunnelblick perguntará se os arquivos de configuração que você tem já são arquivos do Tunnelblick ou não. No meu caso, não são e eu configurarei minha conexão manualmente, que é o que valida este artigo 😉 Se este for também o seu caso, escolha a opção “OpenVPN Configuration(s)” (ou Configurações OpenVPN):

Tunnelblick: criando uma conexão VPN com as informações prévias da sua conexão

Depois disso, o configurador perguntará qual tipo de configuração você quer criar. Escolha a opção “Open Private Configurations Folder” (ou Abrir Pasta de Configurações Pessoais). Com esta opção, uma pasta do Finder será criada no desktop e é nela em que serão colocadas as informações que temos sobre a VPN:

Tunnelblick: criando pasta de configurações personalisadas

Nesta etapa, as informações que deverão ser colocadas nesta pasta são as seguintes:

  • Um script de configuração openvpn (eg., config.ovpn)
  • Uma chave criptografada para a conexão com o servidor (eg., chave.key)
  • Um certificado de segurança (eg., certificado.crt)

Lembre-se que estas informações são fornecidas pelo seu administrador de sistemas e que são pessoais e intransferíveis. Portanto, se você não tem estas informações, peça-as ao seu administrador de sistemas.

Depois de ter colocado as informações (arquivos) dentro da pasta que o configurador do Tunnelblick abriu no seu desktop, clique em “Done”(ou Pronto) na janela anterior, renomeie esta mesma pasta para um nome que você queira para a conexão e adicione a extensão “.tblk”. Feito isto, terá sido criado um arquivo de configuração VPN do Tunnelblick. Para adicioná-lo ao Tunnelblick, basta dar um duplo clique sobre ele (que na verdade é a pasta em que foram salvas as configurações da VPN):

Configurações salvas para uso no Tunnelblick (clique duas vezes para adicionar)

Depois disso, basta utiliza o Tunnelblick através do ícone que fica no painel do Mac OS, próximo ao ícone do Spotlight:

Tunnelblick: menu com as conexões disponíveis

Ao clicar no ícone do Tunnelblick, um menu com as conexões disponíveis será aberto. Para conectar, basta clicar no nome da conexão configurada e realizar a conexão:

Conectando com o Tunnelblick à esquerda (em amarelo) e à direita, conexão relizada (em verde)

Depois que o Tunnelblick estiver ativo em uma conexão, i ícone do painel fica com uma cor diferente (o que pode ser alterado depois):

Ícone de atividade do Tunnelblick

Para desconectar, basta clicar no ícone do Tunnelblick e clicar em “Disconnect NOME_CONEXÃO” (ou Desconectar NOME_CONEXÃO).

Vale lembrar que, caso o seu administrador de sistemas requer alguma camada extra de segurança, e esta não estiver contemplada nas configurações do Tunnelblick, será necessário ativá-las antes de se realizar a conexão.

É isso!

OS X Mountain Lion: vale a pena!

Há alguns meses atrás comprei um macbook pro de 13” com 4GB de memória RAM e com Mac OS X Lion. Nos primeiros dias de utilização, não pude deixar de esconder uma certa desconfiança em relação do Mac OS X Lion, pois este não apresentava o desempenho que eu esperava. Por duas vezes, o macbook travou em situações em que vários programas estavam abertos; em outras situações (mais comuns) me irritava a lentidão de algumas animações do sistema e a beach ball of death (quando o aquele cursor colorido de espera fica girando indefinidamente esperando algum programa responder). Isso me irritou bastante, e percebi que os 4GB de RAM do macbook não eram suficientes. Resolvi colocar 8GB de RAM no macbook e ver se conseguiria um pouco mais de fôlego. O desempenho melhorou bastante, mas os pageouts continuaram e alguns programas ainda eram lentos, o que pude comprovar com a quantidade de pageouts que havia no sistema, mesmo com memória RAM de sobra:

Pageouts excessivos no Mac OS X Lion: gerenciamento de memória ruim…

Com o lançamento dos previews do OS X Mountain Lion, fui acompanhando o depoimentos de quem estava testando e o consenso era de que a nova versão do Mac OS X – ou melhor OS X, já estava mais estável em termos de gerenciamento de memória. Fiz o upgrade – um tanto quanto receoso pois tratava-se de uma versão recém-lançada e eis minha surpresa:

Sem pageouts no OS X Mountain Lion: enquanto tem memória RAM disponível, nada de lentidão no sistema!

Com o OS X Mountain Lion, meu macbook pro ficou bastante rápido e confiável, uma vez que não enfrento mais lentidões por conta dos excessivos pageouts que o Mac OS X Lion insistia em criar. Memória RAM tem que ser usada, até o último byte; se o sistema operacional não consegue utilizar de forma eficiente os seus 2, 4, 6 ou 8GB que você tem, o investimento não vale à pena!

Ok, com as declarações acima, dá pra ver que o OS X Mountain Lion é mais eficiente no gerenciamento de memória, mas o que o page out realmente representa?

Segundo as informações da Apple (neste link), as funções de cada um desses elementos é a seguinte:

  • VM size: é a quantidade total de memória virtual para todos os processos executados no Mac OS
  • Page out: é a quantidade de informação que saiu da memória RAM e foi para o disco rígido (quanto mais, pior)
  • Page in: é a quantidade de informação que sai do disco rígido e volta para a memória RAM, quando a memória antes ocupada, é liberada
  • Swap used: é a quantidade de informação copiada para o arquivo de paginação (swap file) no disco rígido

Além disso, outras informações que o monitor de atividades do Mac OS fornece em relação ao uso da memória RAM, são:

  • Free: é a quantidade de memória RAM que não está sendo utilizada
  • Wired: é quantidade de memória RAM que está sendo utiliza e que não pode ser movida para o disco rígido (este valor depende dos programas que estão abertos)
  • Active: é a quantidade de memória RAM recentemente utilizada
  • Inactive: semelhante a active, é a quantidade de memória RAM que foi recentemente utilizada mas que ainda não foi liberada
  • Used: é a quantidade total de memória RAM utilizada pelo Mac OS

Comandos úteis:

Caso seja necessário forçar a liberação da memória “inativa” do Mac OS, você pode utilizar o comando purge. Para isso, basta abrir o terminal do Mac OS X e digitar:

$ purge

*No OS X 10.8.1 este comando está com um bug (na verdade você não consegue executá-lo, obtendo a seguinte mensagem:

[ERROR] <CPPathUtils.c:526> The device-file for this operating system, 'osx-12.1.0.xml', was not found. An attempt to revert to a previous revision of the OS device-file: 'osx-12.0.0.xml' has been made. Please file a Radar report with Apple, on the 'CoreProfile' component, version 'X'.

*O problema acima já foi resolvido e o comando purge funciona sem problemas no OS X 10.8.2.

Depois que o comando purge for executado, alguns programas podem ficar mais lentos na inicialização, pois terão sido removidos da memória RAM.

Exemplo de um antes e depois do comando purge:

Antes de rodar o comando purge: observe a quantidade de memória inativa (inactive, em azul) utilizada

Depois de rodar o comando purge, a quantidade de memória inativa (em azul) é liberada

Outro comando útil, mas para o monitoramento da memória RAM, é o comando vm_stat. Para utilizá-lo, basta abrir o terminal e digitar:

$ vm_stat

Para fazer com que o comando seja atualizado automaticamente, digamos, a cada 3 segundos, basta fazer:

$ vm_stat 3

e assim por diante.

Referências: