Pode definir palavras-passe em .ssh/config para permitir o login automático?

I'm usando Ubuntu 11.10. I'm utilizando ssh para ligação a muitos servidores diariamente, por isso coloquei os seus parâmetros no ficheiro .ssh/config desta forma:

Host Home
User netmoon
Port 22
HostName test.com

Existe alguma forma de colocar senhas para cada ligação neste ficheiro, para que, quando o servidor pede a senha, o terminal introduza a sua senha e a envie para o servidor?

Preciso disto porque às vezes fico longe do PC e quando volto, escrevo uma palavra-passe e carrego em Enter o terminal diz "CONNECTION CLOSED".

P.S. I don' não quero usar um par de chaves públicas/privadas.

Se não'não quiser realmente utilizar um par de chaves públicas/privadas, pode escrever um script "esperar" para introduzir automaticamente a palavra-passe para si, dependendo do endereço de destino.

Edit: O que quero dizer é que pode ter um script que, por um lado, utiliza "esperar" para introduzir a palavra-passe para si e, por outro lado, lê a palavra-passe para um determinado utilizador e anfitrião a partir de um ficheiro de configuração. Por exemplo, o seguinte guião python funcionará para o cenário do dia ensolarado:

#!/usr/bin/python                                                                                                                        
import argparse
from ConfigParser import ConfigParser
import pexpect

def main(args):
    url = args.url
    user, host = url.split('@', 1)

    cfg_file = 'ssh.cfg'
    cfg = ConfigParser()
    cfg.read(cfg_file)
    passwd = cfg.get(user, host)

    child = pexpect.spawn('ssh {0}'.format(url))
    child.expect('password:')
    child.sendline(passwd)
    child.interact()

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Run ssh through pexpect')
    parser.add_argument('url')
    args = parser.parse_args()
    main(args)

e o formato do ficheiro de configuração seria o seguinte:

[user_1]
host1 = passwd_1
host2 = passwd_2

[user_2]
host1 = passwd_1
host2 = passwd_2

Nota: Como explicado, o script python teria de ser muito mais complexo para lidar com todos os erros possíveis e questionar mensagens do ssh e todos os URLs possíveis (no exemplo it's assumiu que será algo como user@host, mas a parte do utilizador é'não utilizada na maioria das vezes), mas a ideia básica continuaria a ser a mesma. Relativamente ao ficheiro de configuração, poderá utilizar um ficheiro de configuração diferente ou utilizar .ssh/config e escrever o seu próprio código para analisar esse ficheiro e obter a palavra-passe para um determinado utilizador e anfitrião.

Comentários (4)

Não. Isto não é possível I'm afraid.

A única alternativa real é usar chaves privadas mas você'já disse que não'não quer (porque não?).

Comentários (6)

A resposta de @BrunoPereira a esta pergunta mostra um método alternativo de ligação sem introduzir explicitamente uma palavra-passe e evitar chaves ssh.

Pode criar um guião, um pseudónimo ou uma função no seu ~/.bashrc para executar rapidamente esse comando.

Obviamente, há considerações de segurança que deve ter em conta com esta abordagem.

Comentários (1)