Como você mantém a senha oculta quando invocada durante o comando su?

2

Esta é a primeira vez que aconteceu comigo quando estou usando o comando su e ele realmente exibe a senha no terminal e não fica oculto. Aqui está o meu trecho de código:

 sshpass -p "password" ssh -q [email protected] "su -lc 'mkdir temp/'"

Explicação do código: Estou acessando um servidor remoto e tentando fazer root nesse servidor para criar uma pasta. Ao fazê-lo, eu tenho que usar o comando su e me pede a senha. Quando eu digito a senha, ela é exibida e não fica oculta. Como faço para consertar isso?

    
por Alias 02.06.2014 / 20:49

2 respostas

2

Em geral, por favor EVITE usando sshpass com uma senha.
Tudo o que você escreveu pode ser observado por outros usuários com o comando ps e este DEVE ser de interesse para você.
O segundo problema aqui é que não vejo você especificando a opção -t . Isso significa que você tem desativado

Defaults    requiretty

No seu / etc / sudoers, o que pode ter implicações de segurança.

Se você ainda insistir em usar o sshkeypass, tente:

sshpass -p "password" ssh -qt [email protected] "su -lc 'mkdir temp/'"

Você pode configurar facilmente uma chave ssh de geração apenas para fazer este trabalho e depois removê-lo.

ssh-keygen -t rsa

Siga as instruções na tela,

ssh-copy-id user@server1

Ou você também pode fazer:

cat ~/.ssh/id_rsa.pub | ssh user@server1 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"
    
por 17.05.2016 / 06:03
1

Duas coisas aqui:

  1. use ~/.ssh/authorized_keys at [email protected] para fazer login remotamente, sem senha interativa, em vez de ter a senha na linha de comando da máquina cliente. Isso também permitiria que o trabalho fosse executado automaticamente por meio do cron ou qualquer outra coisa.

  2. configure /etc/sudoers na caixa remota 74.11.11.11 para permitir que o comando seja executado como usuário raiz, pelo usuário que está se conectando, neste caso: username .

Portanto, no seu exemplo, /etc/sudoers on 74.11.11.11 permitiria que o usuário username executasse mkdir , como root sem uma senha.

Se você tentou isso e não está funcionando, execute man sudoers .

    
por 03.06.2014 / 01:01