Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
Cliente OpenSSH. Este cliente é um recurso opcional introduzido no Windows 10 Fall Creators Update.
Azure Cloud Shell. O Cloud Shell fornece um ambiente Bash no seu navegador.
Git.
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
sshcliente procura uma chave privada em~/.ssh/id_rsaambientes Linux e Unix.Você pode especificar o caminho para uma chave privada. Com o
sshcliente, o-iparâ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-agentutilitá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 .
|
| 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 .
|
| 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, ondeclusternameé 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.netAo se conectar ao nó de borda, use a porta 22. O nome de domínio totalmente qualificado é
edgenodename.clustername-ssh.azurehdinsight.net, ondeedgenodenameé 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:
Utilize SSH para se conectar a um nó de cabeçalho ou de borda.
ssh sshuser@myedge.mycluster-ssh.azurehdinsight.netA partir da conexão SSH para o nó principal ou de borda, use o
sshcomando para se conectar a um nó de trabalho no cluster:ssh sshuser@wn0-myhdiPara 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.
Usando um editor de texto, abra
~/.ssh/config. Se esse arquivo não existir, você poderá criá-lo inserindotouch ~/.ssh/configem uma linha de comando.Adicione o texto seguinte ao ficheiro
config.Host <edgenodename>.<clustername>-ssh.azurehdinsight.net ForwardAgent yesSubstitua 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.
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.1792Se nada for retornado, então
ssh-agentnão está em execução.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_rsaSe sua chave privada estiver armazenada em um arquivo diferente, substitua
~/.ssh/id_rsapelo caminho para o arquivo.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
- Usar túnelamento SSH com HDInsight
- Use edge nodes in HDInsight (Utilizar nós de extremidade no HDInsight)
- Usar o SCP com o HDInsight

