ti-enxame.com

ssh sem senha para outro nome de usuário?

Quero fazer uma conexão ssh sem senha para um projeto do Subversion. No momento, estou usando ssh + svn, e é um pouco chato, porque tenho que digitar a senha a qualquer momento que quiser fazer transações com o servidor.

Encontrei vários tutoriais na web sobre como gerar uma chave para ssh sem senha, mas todos parecem supor que estou usando o mesmo nome de usuário no sistema remoto e o meu sistema doméstico. No entanto, o nome de usuário que eu uso para ssh + svn é diferente do nome da conta de usuário no sistema que estou executando. Como faço para configurar isso corretamente? Não tive sorte em mudar o nome no arquivo de chaves.

15
user394

Você apenas precisa fornecer o nome de usuário do outro sistema no comando svn:

$ svn co svn+ssh://[email protected]/path/to/repo

Para responder também ao título da sua pergunta:

$ ssh [email protected]

Isso faz com que sshd na máquina remota procure ~otheruser/.ssh/authorized_keys para a chave pública correspondente à chave privada na máquina em que você está digitando o comando.

15
Warren Young

Existem duas maneiras de fazer isso:

1) coloque o usuário @ no svn url; isto diz ao svn + ssh para fazer login como esse usuário. Eu acho que é uma má idéia do ponto de vista de manutenção, porque coisas como externas que apontam para outras partes do repositório não funcionarão corretamente.

2) faça um ~/.ssh/config (documentado como ssh_config ) que diz algo como:

Host othersystem
  User otheruser

desta forma qualquer tentativa de ssh para othersystem será padronizada para usar otheruser. O que é útil para você quando faz o ssh manualmente e também quando está usando o svn.

9
pjz

Você não precisa ter o mesmo nome de usuário nos dois mashines. Contanto que você gere a chave (ssh-keygen) você deve copiar a linha de ~/.ssh/id_rsa.pub ou ~/.ssh/id_dsa.pub (dependendo do tipo de chave) do servidor local e anexe-o a ~/.ssh/authorized_keys no controle remoto.

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh [email protected] 'cat > .ssh/authorized_keys'

Se você não deseja digitar remoteuser cada vez que anexar a ~/.ssh/config:

Host remoteserver
    User remoteuser

PS. O nome da chave pode estar na forma de [email protected] mas é apenas um nome. Pode ser tão bom [email protected] e ninguém se importaria.

6
Maciej Piechotka

Depois de criar .ssh/config e executar:

cat ~/.ssh/id_*.pub | ssh [email protected] 'cat > .ssh/authorized_keys'

Eu recebo erro:

Bad owner or permissions on /usr/share/eprints3/.ssh/config

então eu adiciono chmod 600 .ssh/config e depois disso, está funcionando sem problemas.

enter code here
0
prazetyo