ssh servidor remoto em alguma porta diferente de 22 sem senha

15

Normalmente, estou conectando ao servidor remoto com

ssh [email protected] -p 11000

e, em seguida, dando a senha a cada vez para o usuário. Como devo evitar inserir a senha toda vez que eu conectar usando ssh?

    
por Prabesh Shrestha 28.03.2011 / 17:22

3 respostas

22

Primeiro , coloque isso em ~/.ssh/config :

Host server
HostName server.com
Port 11000
User user

Você poderá ssh server e digitar a senha.

Segundo , verifique em ~/.ssh/ se você tem arquivos com o nome id_rsa e id_rsa.pub . Se não, você não tem nenhuma chave configurada, então você tem que gerar um par usando ssh-keygen . Você pode dar as chaves uma senha ou não. O arquivo gerado id_rsa.pub deve ficar assim:

ssh-rsa lotsofrandomtext user@local

Terceiro , ssh para o servidor, crie o arquivo ~/.ssh/authorized_keys se ele não existir. Em seguida, anexe o conteúdo do ~/.ssh/id_rsa.pub que você gerou anteriormente aqui. Isso pode significar copiar o conteúdo do arquivo para a área de transferência, abrir ~/.ssh/authorized_keys em um editor de texto e colar a coisa.

Como alternativa, use o comando ssh-copy-id server (substitua server pelo nome em ~/.ssh/config ). Isso fará o mesmo que acima. Às vezes eu vejo ssh-copy-id ficando preso, então eu realmente não gosto disso.

Agora você deve conseguir ssh com apenas ssh server , a menos que tenha escolhido proteger sua chave privada com uma frase secreta. Geralmente, se você não usar uma frase secreta, deverá proteger sua chave privada por outros meios (por exemplo, criptografia de disco completo).

Quarto (necessário apenas se você proteger sua chave privada com uma frase secreta), coloque isso ~/.bashrc :

start_ssh_agent() {
    # Try to use an existing agent
    save=~/.ssh-agent
    if [[ -e "$save" ]]
    then
        . "$save" > /dev/null
    fi
    # No existing agent, start a new one
    if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
    then
        ssh-agent > "$save"
        . "$save" > /dev/null
        ssh-add
    fi
}
start_ssh_agent

Com isso, você só precisará digitar a senha uma vez por inicialização do computador.

    
por 28.03.2011 / 18:07
7
por 28.03.2011 / 17:33
4

Como um complemento à resposta de phunehehe, consulte o Guia de Chaves do Gentoo Linux para um guia de chaveiro . O keychain também usa o ssh-agent . O daemon ssh-agent disponibiliza a senha (fica indisponível quando o daemon ssh-agent morre), mas o chaveiro reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in , para citar o guia.

    
por 29.03.2011 / 19:32