passwordless ssh para outro nome de usuário?

13

Eu quero fazer uma conexão ssh sem senha para um projeto de subversão. Agora eu estou usando o ssh + svn, e é um pouco irritante, porque eu tenho que digitar a senha a qualquer momento que eu quiser transacionar com o servidor.

Eu encontrei vários tutoriais na web sobre como gerar uma chave para o ssh sem senha, mas todos eles parecem supor que estou usando o mesmo nome de usuário no sistema remoto como eu sou para o meu sistema de origem. 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? Eu não tive sorte apenas com a alteração do nome no arquivo de chave.

    
por user394 19.08.2010 / 15:44

4 respostas

15

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

$ svn co svn+ssh://otheruser@othersystem/path/to/repo

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

$ ssh otheruser@othersystem

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

    
por 19.08.2010 / 15:47
9

Existem duas maneiras de fazer isso:

1) coloque user @ no svn url; isto diz ao svn + ssh para logar como aquele usuário. Eu acho que é uma idéia ruim do ponto de vista de manutenção, porque coisas como coisas externas que apontam para outras partes do repositório não funcionam 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 o outro sistema será o padrão para usar otheruser. O que é útil quando você faz o ssh manualmente, assim como quando você está usando o svn.

    
por 19.08.2010 / 16:59
5

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

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Se você não quiser digitar remoteuser de cada vez, anexe a ~/.ssh/config :

Host remoteserver
    User remoteuser

PS. O nome da chave pode estar no formato localuser@localhost , mas é apenas um nome . Pode ser tão bom myfavouritekey@myfavouritecomputer e ninguém se importaria.

    
por 19.08.2010 / 18:28
0

Depois de criar o arquivo .ssh / config e executar:

cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Eu recebo erro:

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

então, adiciono chmod 600 .ssh/config e depois disso, tudo corre bem.

enter code here
    
por 07.11.2016 / 04:51