Estou tendo problemas para configurar um servidor de hospedagem de site (por exemplo, website.com ) que tem apenas uma conta de usuário principal (ex. nome próprio ), para permitir o seguinte:
- Os usuários me e friend aparecem como
os nomes de usuários em entradas de log svn e
- Os usuários me e amigo têm
acesso ao shell via SSH
Portanto, eu configuro meu par de chaves privada / pública na minha máquina local ( laptop ) e copio a chave pública para website.com 's / home / ownername / arquivo .ssh / authorized_keys. Eu adicionei este argumento de comando à linha:
command="svnserve -t --tunnel-user=me -r /home/ownername/" ssh-rsa A...eQ== laptoplogin@laptop
Onde / home / ownername / svn / é a localização do repositório Subversion. Isso me permite usar:
[laptop]$ svn co svn+ssh://[email protected]/svn/ project
e todas as alterações que eu faço para projetar usando o Subversion me são listadas como o usuário nos comentários alterados, o que é ótimo.
No entanto, quando eu faço login via ssh:
[laptop]$ ssh [email protected]
( success ( 1 2 ( ANONYMOUS ) ...
Connection closed.
[laptop]$
Então, o que estou tentando fazer é possível? Eu honestamente não sei o suficiente sobre os túneis ssh para saber o que fazer. Existem inúmeros sites que discutem limitando ou removendo o acesso ao shell para clientes svn, mas é claro que eu quero o acesso ao shell, além de um nome de usuário personalizado para eu e amigo .
Qualquer ajuda é apreciada!
Solução:
Eu simplesmente configurei duas chaves id_rsa diferentes: id_rsa_shell e id_rsa_svn. Eu os adicionei ao arquivo .ssh / authorized_keys do servidor. Então, para a chave "shell", não coloco nenhum comando, e a tecla "svn", o svnserve com argumentos. Em seguida, no laptop, configurei o arquivo .ssh / config para ter duas entradas: website-shell e website-svn, cada uma com IdentityFile definida para apontar para as respectivas chaves. O ssh website-shell funcionou como esperado. Para o comando svn, em .subversion / config, sob [túneis] eu coloco:
website = ssh -p XXXX -i /home/emptyset/.ssh/id_rsa_svn
Agora, isso está funcionando:
$ svn co svn+website://website-svn/svn checkoutdirectory
Testando os commits verifiquei o argumento svnserve --tunnel-user trabalhado para colocar meu alias no svn commit. Observe que o alias site-svn é definido em .ssh / config.
Doce. :)