Como fornecer senha através do comando durante a execução do login SSH? [fechadas]

-2

Eu quero realizar o login SSH em uma máquina, fornecendo diretamente a senha por meio da linha de comando, da mesma forma que fazemos para executar os comandos sudo , conforme mostrado abaixo:

echo mypass | sudo -S sh -c 'echo "blablabla" > /etc/1.txt'

Pontos a considerar:

  1. Eu não quero usar o sshPass
  2. Eu não quero configurar o SSH sem senha
por Punit Naik 14.01.2016 / 11:41

2 respostas

2

Você pode usar esperar por isso - escrevendo um script simples fornecendo a senha quando solicitado. O uso básico é bastante simples - o manual irá ajudá-lo. No entanto, acho que não é realmente a solução mais segura. Mas a escolha é sua, se você não quiser usar chaves ssh para isso.

    
por Jacek 14.01.2016 / 11:50
2

Armazenar mypass em um script ( echo mypass | ssh ... ) é uma idéia realmente ruim e bem conhecida (segurança). Ele disponibiliza senhas para qualquer pessoa que possa ler o script ou executar ps enquanto você estiver conectado ao sistema remoto. Este é um problema conhecido e tem uma solução bem testada: ssh-copy-id . Do man page :

trusty (1) ssh-copy-id.1.gz
Provided by: openssh-client_6.6p1-2ubuntu1_i386 bug

NAME

     ssh-copy-id — use locally available keys to authorise logins on a remote
     machine

SYNOPSIS

     ssh-copy-id [-n] [-i [identity_file]] [-p port] [-o ssh_option]
                 [user@]hostname
     ssh-copy-id -h | -?

DESCRIPTION

     ssh-copy-id is a script that uses ssh(1) to log into a remote machine
     (presumably using a login password, so password authentication should be
     enabled, unless you've done some clever use of multiple identities).  It
     assembles a list of one or more fingerprints (as described below) and
     tries to log in with each key, to see if any of them are already
     installed (of course, if you are not using ssh-agent(1) this may result
     in you being repeatedly prompted for pass-phrases).  It then assembles a
     list of those that failed to log in, and using ssh, enables logins with
     those keys on the remote server.  By default it adds the keys by
     appending them to the remote user's ~/.ssh/authorized_keys (creating the
     file, and directory, if necessary).  

Sua falta de vontade de configurar logins SSH sem senha pode ser resolvida usando uma chave SSH alternativa (no sistema de origem) e apenas ssh-add dessa chave quando você quiser fazer o login no sistema remoto.

    
por waltinator 14.01.2016 / 12:08