alias de nome de usuário SSH

1

É possível usar aliases de nome de usuário com SSH? O que estou tentando fazer é conectar ao meu servidor usando ssh site123@hostname e ser autenticado como username site com uma variável de ambiente SITEID=123 .

Eu posso escrever alguns scripts, eu só preciso saber onde eu interceptar o processo de autenticação SSH.

EDITAR:

Estou tentando implementar um "roteador ssh". Um desenvolvedor irá ssh projectname@host , e ele será redirecionado para o ambiente certo. Eu não preciso me preocupar com o sistema de arquivos e o UID / GID neste caso, já que eu apenas redirecionarei o usuário para a máquina certa (com o nome de usuário correto).

Se eu ssh [email protected] , isso redirecionará o usuário para [email protected] (host interno!). Eu já faço isso, mas eu tenho que criar um usuário para cada projeto e, em seguida, configurar o authorized_keys com o comando certo.

    
por Rafael Kassner 28.01.2014 / 21:30

4 respostas

2

De improviso: não.

Depois de mais algumas considerações: isso depende do seu ambiente e do que você está tentando alcançar.

O sistema de arquivos e grande parte do SO só se preocupam com os números UID / GID, e você pode ter um mapeamento muitos-para-um, o nome de usuário 'site123' pode ter o mesmo UID do usuário 'site' e a mesma casa diretório também.

Você pode querer olhar para o pam_env também.

    
por 28.01.2014 / 21:47
1

Você pode adicionar command="ssh [email protected]" no início do arquivo authorized_keys da [email protected]. Se esse usuário tiver as credenciais corretas, ele deverá passar para o outro lado.

EDITAR:

Você também pode definir SITEID=123 no mesmo comando, se necessário.

    
por 29.01.2014 / 03:45
0

Você pode enviar variáveis de ambiente para o servidor, mas o servidor deve estar configurado para aceitá-las:

server# grep SITEID /etc/ssh/sshd_config
AcceptEnv SITEID

Então, no cliente:

client$ SITEID=123 ssh -o SendEnv="SITEID" user@server
server$ echo $SITEID
123

No entanto, lembre-se de que qualquer pessoa (capaz de fazer login) pode definir SITEID como desejar.

    
por 29.01.2014 / 04:43
0

imo uma maneira menos complicada seria apenas criar um usuário duplicado, por exemplo:

Edite os arquivos abaixo & duplicar o nome de usuário do site & basta modificar o da parte de site para site123

/etc/passwd
    site:x:500:500:Site User:/home/site:/bin/bash
    site123:x:500:500:Site User:/home/site:/bin/bash

/etc/shadow
    site:$6$2.ZZMqBj$kFO1qi1UqGh4y3wcSDcEM5IoCMlljdZggqZ3ZUMvXaKu6J8VzgwobKC3q1Lx8CYsHZeGEJU7d9DreHSPdTh0I.:16072::::::
    site123:$6$2.ZZMqBj$kFO1qi1UqGh4y3wcSDcEM5IoCMlljdZggqZ3ZUMvXaKu6J8VzgwobKC3q1Lx8CYsHZeGEJU7d9DreHSPdTh0I.:16072::::::

O para definir o $SITEID editar o arquivo .bashrc do site user & adicione:

SITEID=$(who am i | awk '{print $1}')
  • ELSE

A outra abordagem que você pode tomar se usar arquivos de chave ssh é permitir que todos façam login como usuário site mas com suas próprias chaves, então no arquivo authorized_keys adicione o seguinte ao início de cada linha de chave diferente:

environment="SITEID=site123" ssh-rsa AAAAB3NzaC
environment="SITEID=site111" ssh-rsa AAAAJ2Oqka

Dessa forma, todos eles ainda terão ids de sites diferentes

    
por 29.01.2014 / 14:59

Tags