Como fazer o ssh logar como o usuário certo?

8

Eu uso o ssh em uma variedade de máquinas, principalmente linux. As contas nessas máquinas variam de acordo com o esquema de nomes: se meu nome é Primeiro por último, tenho contas: primeiro, flast, último_f, últimof e, às vezes, preciso fazer login como root. Para cada máquina que eu uso, gostaria que o cliente openssh soubesse qual conta usar quando não especificasse na linha de comando.

Portanto, a pergunta é: como faço para fazer a ssh servercoisa certa quando um nome de usuário não é especificado?

bstpierre
fonte

Respostas:

18

Você pode criar um configarquivo em seu .sshdiretório pessoal, que pode especificar um usuário padrão, um arquivo de identidade etc. e atribuí-lo a um alias que você pode usar para se conectar.

Por exemplo, você pode colocar isso no ~/.ssh/configarquivo:

Host example
    HostName example.com
    User first_last
    IdentityFile ~/.ssh/example_rsa
    Port 22
    RSAAuthentication yes
    PubkeyAuthentication yes

Host example2
    HostName example2.com
    User last_first
    # other parameters as needed

Em seguida, basta digitar ssh exampleou ssh example2na linha de comando para conectar.

Assim, você pode configurar um para cada máquina à qual deseja se conectar, com o usuário relevante. Em seguida, basta usar os aliases para conectar-se sem precisar especificar um usuário. Você também pode usar um padrão para corresponder a vários hosts.

Há mais informações e detalhes do que você pode especificar em um arquivo de configuração na página do manual ssh_config .

Rich Adams
fonte
3
Absolutamente, você pode especificar quantas quiser no mesmo arquivo .config. Tenho mais de 20 na minha sem problemas. Deixo apenas um espaço entre cada host distinto, o que provavelmente não é necessário, mas o torna mais legível.
rico Adams
1
Não deveria ser configarquivo? Sem ponto no começo?
Danadam 03/11/2009
1
@rich estava tentando fazer com que você mostrasse outro site no seu exemplo; espero que você não se importa de me ir em frente e jogando-a no.
quack quixote
4
Recuar tudo, menos as linhas que contêm "Host foo", ajuda muito a causa da manutenção.
InnaM 03/11/2009
1
@CristianCiupitu: Considerando a questão do Linux, dificilmente chamaria a página de manual do OpenBSD de oficial. Existem opções no ssh do Linux (por exemplo, GSSAPIKeyExchange ) que não estão disponíveis na versão BSD.
30514 Dennis
1

De acordo com a resposta de Rich Adam, descobri para o PuTTY onde ele armazena suas configurações.

Está tudo armazenado em uma árvore de registro, você encontrará em HKEY_CURRENT_USER\Software\SimonTatham(Simon Tatham é o desenvolvedor do PuTTY).
Lá você pode ver como um host é definido.

guerda
fonte
1

Se você deseja alterá-lo para TODOS os sites:

Edite seu ~/.ssh/configpara ter isso:

Host *
    User buck
hopeeekr
fonte