Partilhar via


Conectar-se ao HDInsight (Apache Hadoop) usando SSH

Saiba como usar o Secure Shell (SSH) para se conectar com segurança ao Apache Hadoop no Azure HDInsight. Para obter informações sobre como se conectar por meio de uma rede virtual, consulte Arquitetura de rede virtual do Azure HDInsight. Consulte também, Planejar uma implantação de rede virtual para clusters do Azure HDInsight.

A tabela a seguir contém as informações de endereço e porta necessárias ao se conectar ao HDInsight usando um cliente SSH:

Endereço Porto Conecta-se a...
<clustername>-ssh.azurehdinsight.net 22 Nó principal primário
<clustername>-ssh.azurehdinsight.net 23 Nó principal secundário
<edgenodename>.<clustername>-ssh.azurehdinsight.net 22 nó de borda (qualquer outro tipo de cluster, caso exista um nó de borda)

Substitua <clustername> pelo nome do cluster. Substitua <edgenodename> pelo nome do nó de borda.

Se o cluster contiver um nó de borda, recomendamos que você sempre se conecte ao nó de borda usando SSH. Os nós principais hospedam serviços que são críticos para a integridade do Hadoop. O nó de borda apenas executa aquilo que você coloca nele. Para obter mais informações sobre como usar nós de borda, consulte Usar nós de borda no HDInsight.

Sugestão

Quando você se conecta ao HDInsight pela primeira vez, seu cliente SSH pode exibir um aviso de que a autenticidade do host não pode ser estabelecida. Quando solicitado, selecione 'sim' para adicionar o host à lista de servidores confiáveis do seu cliente SSH.

Se você se conectou anteriormente a um servidor com o mesmo nome, poderá receber um aviso de que a chave de host armazenada não corresponde à chave de host do servidor. Consulte a documentação do seu cliente SSH sobre como remover a entrada existente para o nome do servidor.

Clientes SSH

Os sistemas Linux, Unix e macOS fornecem os ssh comandos e scp . O ssh cliente é comumente usado para criar uma sessão de linha de comando remota com um sistema baseado em Linux ou Unix. O scp cliente é usado para copiar arquivos com segurança entre seu cliente e o sistema remoto.

O Microsoft Windows não instala nenhum cliente SSH por padrão. Os ssh e scp clientes estão disponíveis para Windows através dos seguintes pacotes:

Existem também vários clientes gráficos SSH, como PuTTY e MobaXterm. Embora esses clientes possam ser usados para se conectar ao HDInsight, o processo de conexão é diferente do uso do ssh utilitário. Para obter mais informações, consulte a documentação do cliente gráfico que você está usando.

Autenticação: Chaves SSH

As chaves SSH usam criptografia de chave pública para autenticar sessões SSH. As chaves SSH são mais seguras do que as senhas e fornecem uma maneira fácil de proteger o acesso ao cluster Hadoop.

Se sua conta SSH estiver protegida usando uma chave, o cliente deverá fornecer a chave privada correspondente quando você se conectar:

  • A maioria dos clientes pode ser configurada para usar uma chave padrão. Por exemplo, o ssh cliente procura uma chave privada em ~/.ssh/id_rsa ambientes Linux e Unix.

  • Você pode especificar o caminho para uma chave privada. Com o ssh cliente, o -i parâmetro é usado para especificar o caminho para a chave privada. Por exemplo, ssh -i ~/.ssh/id_rsa sshuser@myedge.mycluster-ssh.azurehdinsight.net.

  • Se você tiver várias chaves privadas para uso com servidores diferentes, considere usar um utilitário como ssh-agent (https://en.wikipedia.org/wiki/Ssh-agent). O ssh-agent utilitário pode ser usado para selecionar automaticamente a chave a ser usada ao estabelecer uma sessão SSH.

Importante

Se protegeres a tua chave privada com uma frase secreta, tens de introduzir a frase secreta quando usares a chave. Utilitários como ssh-agent podem armazenar em cache a senha para sua conveniência.

Criar um par de chaves SSH

Use o ssh-keygen comando para criar arquivos de chave pública e privada. O comando a seguir gera um par de chaves RSA de 2048 bits que pode ser usado com o HDInsight:

ssh-keygen -t rsa -b 2048

Você será solicitado a fornecer informações durante o processo de criação da chave. Por exemplo, onde as chaves são armazenadas ou se deve usar uma frase secreta. Após a conclusão do processo, dois arquivos são criados; uma chave pública e uma chave privada.

  • A chave pública é usada para criar um cluster HDInsight. A chave pública tem uma extensão de .pub.

  • A chave privada é usada para autenticar seu cliente no cluster HDInsight.

Importante

Você pode proteger suas chaves usando uma senha. Uma frase secreta é efetivamente uma palavra-passe na sua chave privada. Mesmo que alguém obtenha a sua chave privada, tem de ter a frase secreta para utilizar a chave.

Criar o HDInsight usando a chave pública

Método de criação Como usar a chave pública
Portal do Azure Desmarque Usar senha de login do cluster para SSH e selecione Chave Pública como o tipo de autenticação SSH. Finalmente, selecione o arquivo de chave pública ou cole o conteúdo do texto do arquivo no campo de chave pública SSH .
Caixa de diálogo de chave pública SSH na criação de cluster HDInsight.
Azure PowerShell Use o -SshPublicKey parâmetro do cmdlet New-AzHdinsightCluster e passe o conteúdo da chave pública como uma cadeia de caracteres.
Azure CLI (Interface de Linha de Comando da Azure) Use o --sshPublicKey parâmetro do comando e passe o conteúdo da chave pública como uma cadeia de az hdinsight create caracteres.
Modelo do Gerenciador de Recursos Para obter um exemplo de como usar chaves SSH com um modelo, consulte Implantar o HDInsight no Linux com chave SSH. O publicKeys elemento no arquivo azuredeploy.json é usado para passar as chaves para o Azure ao criar o cluster.

Autenticação: Senha

As contas SSH podem ser protegidas usando uma senha. Quando você se conecta ao HDInsight usando SSH, você é solicitado a inserir a senha.

Advertência

A Microsoft não recomenda o uso de autenticação de senha para SSH. As senhas podem ser adivinhadas e são vulneráveis a ataques de força bruta. Em vez disso, recomendamos que você use chaves SSH para autenticação.

Importante

A palavra-passe da conta SSH expira 70 dias após a criação do cluster do HDInsight. Se sua senha expirar, você poderá alterá-la usando as informações no documento Gerenciar HDInsight .

Criar o HDInsight usando uma senha

Método de criação Como especificar a palavra-passe
Portal do Azure Por padrão, a conta de usuário SSH tem a mesma senha que a conta de login do cluster. Para usar uma senha diferente, desmarque Usar senha de login do cluster para SSH e digite a senha no campo Senha SSH .
Caixa de diálogo de senha SSH na criação do cluster HDInsight.
Azure PowerShell Use o --SshCredential parâmetro do cmdlet New-AzHdinsightCluster e passe um PSCredential objeto que contenha o nome da conta de usuário e a senha do SSH.
Azure CLI (Interface de Linha de Comando da Azure) Use o --ssh-password parâmetro do comando e forneça o valor da az hdinsight create senha.
Modelo do Gerenciador de Recursos Para obter um exemplo de como usar uma senha com um modelo, consulte Implantar o HDInsight no Linux com senha SSH. O linuxOperatingSystemProfile elemento no arquivo azuredeploy.json é usado para passar o nome da conta SSH e a senha para o Azure ao criar o cluster.

Alterar a palavra-passe SSH

Para obter informações sobre como alterar a senha da conta de usuário SSH, consulte a seção Alterar senhas do documento Gerenciar HDInsight .

Domínio de autenticação associado ao HDInsight

Se estiver a usar um cluster HDInsight associado a um domínio, deve usar o kinit comando depois de se conectar com o utilizador local SSH. Este comando solicita um usuário e uma senha de domínio e autentica sua sessão com o domínio Microsoft Entra associado ao cluster.

Você também pode habilitar a autenticação Kerberos em cada nó associado ao domínio (por exemplo, nó principal, nó de borda) para se conectar via SSH usando a conta de domínio. Para fazer isso, edite o arquivo de configuração sssd:

sudo vi /etc/ssh/sshd_config

descomente e altere KerberosAuthentication para yes

sudo service sshd restart

Use klist o comando para verificar se a autenticação Kerberos foi bem-sucedida.

Para obter mais informações, consulte Configurar o HDInsight associado a um domínio.

Conectar a nodos

Os nós principais e o nó de borda (se houver) podem ser acessados pela internet nas portas 22 e 23.

  • Ao se conectar aos nós principais, use a porta 22 para se conectar ao nó principal primário e a porta 23 para se conectar ao nó principal secundário. O nome de domínio totalmente qualificado a ser usado é clustername-ssh.azurehdinsight.net, onde clustername é o nome do cluster.

    # Connect to primary head node
    # port not specified since 22 is the default
    ssh sshuser@clustername-ssh.azurehdinsight.net
    
    # Connect to secondary head node
    ssh -p 23 sshuser@clustername-ssh.azurehdinsight.net
    
  • Ao se conectar ao nó de borda, use a porta 22. O nome de domínio totalmente qualificado é edgenodename.clustername-ssh.azurehdinsight.net, onde edgenodename é um nome que você forneceu ao criar o nó de borda. clustername é o nome do cluster.

    # Connect to edge node
    ssh sshuser@edgnodename.clustername-ssh.azurehdinsight.net
    

Importante

Os exemplos anteriores pressupõem que você está usando a autenticação de senha ou que a autenticação de certificado está ocorrendo automaticamente. Se você usar um par de chaves SSH para autenticação e o certificado não for usado automaticamente, use o -i parâmetro para especificar a chave privada. Por exemplo, ssh -i ~/.ssh/mykey sshuser@clustername-ssh.azurehdinsight.net.

Uma vez conectado, o prompt muda para indicar o nome de usuário SSH e o nó ao qual você está conectado. Por exemplo, quando conectado ao nó principal primário como sshuser, o prompt é sshuser@<active-headnode-name>:~$.

Conectar-se aos nós do trabalhador e do Apache Zookeeper

Os nós de trabalho e os nós do Zookeeper não são diretamente acessíveis pela internet. Eles podem ser acessados a partir dos nós principais do cluster ou nós de borda. A seguir estão as etapas gerais para se conectar a outros nós:

  1. Utilize SSH para se conectar a um nó de cabeçalho ou de borda.

    ssh sshuser@myedge.mycluster-ssh.azurehdinsight.net
    
  2. A partir da conexão SSH para o nó principal ou de borda, use o ssh comando para se conectar a um nó de trabalho no cluster:

    ssh sshuser@wn0-myhdi
    

    Para recuperar uma lista dos nomes dos nós, consulte Gerenciar o HDInsight usando o documento da API REST do Apache Ambari .

Se a conta SSH estiver protegida usando uma senha, digite a senha ao se conectar.

Se a conta SSH estiver protegida usando chaves SSH, certifique-se de que o encaminhamento SSH esteja habilitado no cliente.

Observação

Outra maneira de acessar diretamente todos os nós no cluster é instalar o HDInsight em uma Rede Virtual do Azure. Em seguida, você pode unir sua máquina remota à mesma rede virtual e acessar diretamente todos os nós no cluster.

Para obter mais informações, consulte Planejar uma rede virtual para o HDInsight.

Configurar o encaminhamento do agente SSH

Importante

As etapas a seguir assumem um sistema baseado em Linux ou UNIX e funcionam com Bash no Windows 10. Se estas etapas não funcionarem para o seu sistema, talvez seja necessário consultar a documentação do seu cliente SSH.

  1. Usando um editor de texto, abra ~/.ssh/config. Se esse arquivo não existir, você poderá criá-lo inserindo touch ~/.ssh/config em uma linha de comando.

  2. Adicione o texto seguinte ao ficheiro config.

    Host <edgenodename>.<clustername>-ssh.azurehdinsight.net
        ForwardAgent yes
    

    Substitua as informações do host pelo endereço do nó ao qual você se conecta usando SSH. O exemplo anterior usa o nó de borda. Esta entrada configura o encaminhamento do agente SSH para o nó especificado.

  3. Teste o encaminhamento do agente SSH usando o seguinte comando do terminal:

    echo "$SSH_AUTH_SOCK"
    

    Este comando devolve informações semelhantes ao texto seguinte:

    /tmp/ssh-rfSUL1ldCldQ/agent.1792
    

    Se nada for retornado, então ssh-agent não está em execução.

  4. Depois de verificar se o ssh-agent está em execução, use o seguinte para adicionar sua chave privada SSH ao agente:

    ssh-add ~/.ssh/id_rsa
    

    Se sua chave privada estiver armazenada em um arquivo diferente, substitua ~/.ssh/id_rsa pelo caminho para o arquivo.

  5. Conecte-se ao nó de extremidade do cluster ou aos nós principais usando SSH. Em seguida, use o comando SSH para se conectar a um nó de trabalho ou zookeeper. A conexão é estabelecida usando a chave encaminhada.

Próximos passos