Pergunta

Eu não consigo descobrir como criar chaves públicas / privadas para outros usuários no meu servidor. No meu servidor, eu digite a seguinte através do shell

(uiserver): john:> ssh-keygen -t dsa

Depois disso, eu inserir os nomes e senha, que com sucesso resulta em uma chave privada e um par de chave pública para "john". Agora, quando eu usar essa chave para ssh em meu repositório Subversion (sentado em john), todas as ações são registradas como "john". Isso é perfeito.

Assim, na próxima, eu quero criar um par de chaves pública / privada para "George" para que ele possa acessar o meu servidor. Repeti o ssh-keygen do meu servidor. Então eu dei a chave privada para George. George instalado com sucesso a chave, mas cada vez que ele executa uma ação no repositório SVN, subversão registra suas ações como "John" em vez de "george". Como faço para obter o Subversion a reconhecer a diferença entre "George" e "João"?

Eu olhei em authorized_keys2 e notei que o comentário final para ambas as chaves é "john @ uiserver". Eu tentei editar o comentário, mas a subversão ainda não pode reconhecer a diferença entre George e John.

Detalhes adicionais

Eu tenho uma solução de trabalho metade com base na resposta de Juliano. Eu fui para "david" máquina (linux), fez as teclas / pub, chave pub anexo PRV para authorized_keys2 de John. Perfeito! SVN está registrando mudanças de David como david.

eu fui para "george" máquina (Windows XP), puttygen usada para criar chaves PRV / pub, chave pub anexo ao authorized_keys2 de John. George pode acessar svn, mas todas as suas mudanças ainda são registrados como john. Eu estou tentando solução túnel do bojo assim que eu descobrir onde configurá-lo no TortoiseSVN.

RESPOSTA

Eu usei a opção 2 da resposta de bojo. No final, tudo o que eu precisava fazer era adicione a seguinte linha ao meu authorized_keys2

command="svnserve -t --tunnel-user=george",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss <george's long public key> == meaningful comment

Eu também adicionei a linha

george=george's password

à minha / pathtorepository / conf / passwd para o meu arquivo de senhas subversão

Foi útil?

Solução

Verifique as instruções sobre como usar o comando do usuário --tunnel aqui no svn manual do . Imagino a razão George está aparecendo como John é porque você não está dizendo a sessão ssh qual o usuário é, por isso é inadimplente na conta de John.

Para esclarecer, o poster original tem duas opções.

  1. Criar uma nova conta de utilizador para George. Isso pressupõe que ele tem acesso de super usuário.
  2. Gerar a segunda chave (idealmente George faz isso), Acrescentar ao arquivo .ssh / authorized_keys da conta de John, e adicionar o acima comandos vinculado ao arquivo .ssh / authorized_keys como descrito. O link também descreve como limitar o acesso do usuário adicional para a conta de John.

Outras dicas

Então eu dei a chave privada para George.

As chaves privadas são chamados privado por uma razão. Eles nunca se destinam a ser transferidos desta forma. George deve criar seu próprio par de chaves, em seu próprio ambiente do usuário. Mas isso não está relacionado com o problema que está ocorrendo. Chaves são fatores apenas primos de um número muito grande (simplificado e de fácil entendimento). A identidade do usuário não é parte da chave, mas um "rótulo" que está ligado à tecla, que o SSH não faz um monte de utilização.

De sua descrição, você está pedindo George para fazer login na conta de John através de SSH. O que determina o usuário que está conectado em ações SVN não está relacionado com o par de chaves usado para autenticação de qualquer forma, mas para o usuário que está realmente sendo registrado para.

Assim, George deve tem seu próprio login da conta para o servidor SVN, o repositório deve ser compartilhado por ambas as contas, e George deve usar suas próprias credenciais para acessar o servidor.

O John URL: svn + ssh: // john @ svn-server / path / to / repo

O George URL: svn + ssh: // george @ svn-server / path / to / repo

É este relacionado a este SO questão , apontando para a entrada do blog svn sobre prompts SSH para o mal nome de usuário ?

A solução foi a de criar um arquivo de configuração no diretório george .ssh e colocar o seguinte em:

Host uiserver
User george

Você pode dar uma tentativa usando:

ssh-keygen -C "george"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top