Configurações diferentes para o cliente ssh dependendo do endereço IP ou nome do host

1

Eu tenho isso no meu diretório ~ / .ssh / config:

Host 12.34.56.78
    IdentityFile ~/.ssh/my_identity_file

Quando eu ssh para 12.34.56.78, tudo funciona bem. Me pedem a frase secreta para "my_identity_file" e posso conectar-me ao servidor.

No entanto, às vezes eu também gostaria de usar o ssh em outro servidor. Mas seja qual for o servidor, se eu fizer:

ssh [email protected]

Também me pedem a senha para "my_identity_file" (mesmo que o servidor tenha um endereço IP diferente). Isso é muito chato porque não tenho a chave pública para esse arquivo em todos os meus servidores. Eu gostaria de me conectar a esse outro servidor (uma antiga conta de hospedagem compartilhada) com uma senha, e agora eu não posso.

Como eu consigo usar a autenticação de chaves somente com um servidor, e continuo usando a senha por padrão para servidores que não estão listados em meu ~ / .ssh / config?

    
por John Smith Optional 01.07.2013 / 18:46

2 respostas

1

O Host no arquivo de configuração é, na verdade, o nome abreviado do qual você deseja identificar o servidor. Você precisa usar o nome do host para identificar por nome de host ou IP. Também você pode limitar a um determinado usuário também

Tente algo como

Host myhost
Hostname a.b.c.d
User myuser
Identityfile my-identity-file

Isso deve usar esse arquivo de chave somente para o nome do host especificado Ele também usará esse usuário se você não especificar um

    
por 16.07.2013 / 23:16
0

Você provavelmente achará útil usar uma ferramenta como "ssh-add" que manterá sua chave privada decifrada na memória, por isso não pedirá sua senha quando você precisar dela.

Então, quando você vai querer ssh outro host,

1 / Se a sua chave pública estiver presente, o ssh irá autenticá-lo automaticamente

2 / Se sua chave pública não estiver nela, o ssh tentará autenticá-lo com a chave, falhará e, em seguida, solicitará a senha.

Mas como dito por Etan Reisner, parece que você chamou seu arquivo de identidade pelo nome padrão, caso contrário o ssh não estaria tentando usá-lo. Se você não quiser usar um agente ssh, apenas mude o nome da sua chave privada

    
por 01.07.2013 / 19:04