Autenticação de chave SSH com outro usuário

4

Estou me confundindo com alguma autenticação baseada em chave ssh.

Digamos que eu tenha:

Host A:
user tom
  .ssh
     tom_private_key
     tom_public_key



Host B:
user shared
   .ssh
     shared_private_key
     shared_public_key

Eu quero SSH do Host A, como usuário shared , no Host B.

Eu teria que copiar a chave privada do usuário shared para meu diretório ssh e usar o parâmetro -I ou configurar um arquivo de configuração SSH para que quando eu ssh para esse host como usuário shared , o shared a chave privada do usuário é usada?

Não há uma maneira de fazer isso sem copiar a chave privada está lá? Eu não penso assim, mas eu obviamente gostaria de evitar a cópia em torno de chaves privadas, se eu puder.

    
por Wade Williams 14.05.2011 / 00:44

3 respostas

2

Você precisa preencher o arquivo ~/.ssh/authorized_keys no Host B com as chaves públicas de todos os usuários que deseja ter acesso à conta compartilhada. Apenas o cliente precisa da chave privada do usuário. O servidor só precisa conhecer as chaves públicas que podem se conectar a uma determinada conta.

Raramente é necessário que os usuários compartilhem chaves privadas (a conhecida chave privada Vagrant é uma exceção ilustrativa) ou colocar as chaves particulares dos usuários no servidor. Cada chave privada deve ser exclusiva para cada usuário e deve permanecer em sua máquina cliente. Mesmo se você desconsiderar essa prática recomendada, ainda não precisará colocar a chave privada do usuário compartilhado no servidor; você só precisa distribuir uma cópia da chave privada para cada usuário que usará essa chave para se conectar à conta compartilhada.

    
por 13.04.2012 / 08:45
1

Se você usar o SSH do seu laptop no Host A, poderá armazenar a chave privada localmente e usar o encaminhamento do agente (ssh -A host_a).

    
por 14.05.2011 / 00:49
0

Fazendo isso no host A:

cat ~tom/.ssh/tom_public_key | ssh shared@host-b 'cat >> .ssh/authorized_keys'

Vamos fazer (novamente no host A):

ssh -i ~tom/.ssh/tom_private_key shared@host-b


Na primeira linha, você copia a chave pública do Tom do Host A ( host-a:~tom/.ssh/tom_public_key ) para o Host B no arquivo authorized_keys-shared-user ( host-b:~shared/.ssh/authorized_keys ), então você pode conectar (segunda linha) de A a B sem senha:

Você pode ter várias chaves públicas no arquivo authorized_keys (uma por linha) e usar a mesma chave pública para vários hosts remotos. Você também pode usar a mesma chave privada em várias máquinas, mas eu chamo de má prática.

    
por 13.04.2012 / 11:05