Chave SSH com usuário e raiz com script de shell

0

É possível fazer o login do ssh em um servidor como um usuário com acesso ao shell e depois mudar para o usuário root com a ajuda da chave ssh usando um script bash?

    
por Jaison V John 07.01.2016 / 05:51

2 respostas

1

Existem duas maneiras de fazer isso:

Uma chave: ssh diretamente do localhost para o root @ remote

  1. Gere um novo par de chaves, se ainda não o fez.

    ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
    
  2. Copie a chave pública na conta raiz da máquina remota:

    ssh user@remote sudo -i bash -c "mkdir -p .ssh && cat >> .ssh/authorized_keys" < ~/.ssh/id_rsa.pub
    
    (You will need to enter one or two passwords.)
    
  3. Teste para ver se funcionou:

    ssh [email protected]
    

Duas chaves: ssh para usuário @ remoto usando sua chave local, então ssh para root @ remoto usando a chave do usuário no controle remoto

  1. Faça login na máquina remota como o usuário

    ssh [email protected]
    
  2. Crie um par de chaves na máquina remota (siga o passo 1 acima)

  3. Copie a chave na conta do root:

    sudo -i bash -c "mkdir -p .ssh && cat >> .ssh/authorized_keys" < ~/.ssh/id_rsa.pub
    
  4. Como usuário no remoto, teste-o:

    ssh root@localhost
    
    (No password required)
    
  5. Efetue logout e tente os dois saltos da sua máquina doméstica:

    ssh [email protected] ssh root@localhost
    
  6. Se isso funcionar, agora você pode bloqueia tentativas de login raiz de IPs externos .

Problemas

Se os testes falharem:

  1. Talvez seja necessário verificar /etc/ssh/sshd_config no host remoto para garantir que você tenha uma linha sem nenhum comentário # :

    PubkeyAuthentication yes
    

    e também:

    PermitRootLogin without-password
    

    ou:

    PermitRootLogin yes
    

    Se você precisar alterar alguma linha, reinicie o servidor ssh depois:

    sudo -i service ssh restart
    
  2. Pode ser necessário definir uma senha para root na máquina remota (mesmo que você não pretenda usá-la!):

    sudo -i passwd
    

    Isso não é realmente desejável, mas pode ser útil para a depuração.

    Para desativar a senha do root novamente, execute:

    sudo passwd -l root
    
por joeytwiddle 07.01.2016 / 08:00
0

No final do seu arquivo de configuração ssh (/ etc / ssh / shd_config provavelmente), escreva:

Match User SomeUserName
        ForceCommand echo "*** Now Becoming Root ***" && sudo -i

você digitaria as senhas manualmente, se estivesse usando senhas ... De qualquer forma, reinicie o ssh para que o arquivo de configuração seja recarregado.

sudo service ssh restart
    
por j0h 07.01.2016 / 07:16