O que é pageant para o Linux? Salvando Senhas da Chave Privada SSH

6

Eu quero que o computador, como o concurso, mostre um prompt de senha SSH durante o tempo de inicialização. Eu tenho minhas chaves privadas armazenadas em um Dropbox entre 3 computadores, dos quais 1 é agora Ubuntu.

Eu pesquisei por duas horas e perguntei a outras pessoas, mas a maioria das pessoas simplesmente não usa chaves particulares ou usa chaves privadas sem senhas e, portanto, não precisa de algo assim. No entanto, uso minha mesma chave privada em vários locais e a renovo todos os anos. Ele deve ser protegido por senha porque está em vários locais e no meu Dropbox.

Encontrei o Seahorse, embora não tenha certeza de que ele faça o que eu quero, mas ele gera falhas de segmentação em uma nova instalação do Ubuntu ao importar uma chave PuTTy exportada para o OpenSSH.

    
por ujjain 15.09.2011 / 08:32

4 respostas

5

Muitas distribuições do Linux iniciarão o ssh-agent a partir do gerenciador de login por padrão. Então, tudo o que você precisa fazer é adicionar sua chave depois de iniciada.

Então você poderia simplesmente configurar um script de atalho ou algo assim para rodar o ssh-add assim que você logar. Como você faz isso depende do ambiente de área de trabalho que você está usando.

Você pode instalar ferramentas de GUI como x11-ssh-askpass , então o prompt de senha é apresentado na GUI.

Você pode fazer as coisas com o PAM para solicitar uma senha ou simplesmente reutilize sua senha de login.

Cavalo-marinho ou outras carteiras de senha (1 ) ( 2 ) incorporado alguns ambientes de trabalho também devem funcionar. Eu não tenho ideia do porque está falhando por você. Você precisaria adicionar mais detalhes.

    
por 15.09.2011 / 08:45
3

Você deve verificar duas coisas:

  1. Se você está trabalhando em um linux recente como o ubuntu, você já deve ter um gerenciador de chaves compatível com ssh-agent rodando em seu sistema. Abra um shell (em X11) e verifique o valor da variável de ambiente SSH_AUTH_SOCK . Se for algo como /tmp/keyring-WEuO6X/ssh , você está executando o Gnome Keyring . Se for como /tmp/ssh-XXXXXXXXXX/agent.<ppid> , você está executando o ssh-agent e assim por diante. Se estiver vazio, você não tem nenhum gerenciador de chaves em execução.

  2. Suponho que você armazene chaves em um diretório não padrão (ou seja, não em ~/.ssh ). Então, o seu gerenciador de chaves não os vê. Veja o manual do ssh-agent e tente fazer um link suave em ~/.ssh dir para a sua chave. Algo como ln -s $HOME/dropbox/.../mydsakey $HOME/.ssh/id_rsa (os nomes exatos dos arquivos dependem do seu tipo de chave). Isso deve funcionar com qualquer gerenciador de chaves, mas, depois de determinar o que você está usando, você pode procurar uma solução mais clean em seu manual.

Em qualquer caso, a maioria dos gerentes de chaves não perguntará a você a frase-chave no momento do login, mas quando você tentar usar a chave pela primeira vez na sessão.

[- post scriptum -]

O método mais simples para verificar se você tem um gerenciador de chaves em execução é tentar adicionar manualmente uma chave:

ssh-add <key-file>
    
por 15.09.2011 / 12:43
1

Chaveiro é como ssh-agent (na verdade, é uma espécie de invólucro), mas mantém o mesmo agente sendo executado em todos os processos.

keychain is a manager for ssh-agent, typically run from ~/.bash_profile. It allows your shells and cron jobs to share a single ssh-agent process. By default, the ssh-agent started by keychain is long-running and will continue to run, even after you have logged out from the system. If you want to change this behavior, take a look at the --clear and --timeout options, described below.

    
por 15.09.2011 / 08:50
1

Com o Ubuntu e o Kubuntu, usei ssh-agent com um script escrito por mim.

Eu instalei putty:

sudo apt-get install putty

Você precisa criar um arquivo id_rsa na pasta .ssh do seu diretório pessoal com ssh-keygen ou converter de seu * .ppk (arquivo gerado puttygen). O nome id_rsa é importante!

puttygen private.ppk -O private-openssh -o $HOME/.ssh/id_rsa

O arquivo id_rsa não deve ser legível ou gravável por outros:

chmod 600 $HOME/.ssh/id_rsa

Eu criei um arquivo agent.sh no meu diretório pessoal, mas ele pode ser colocado em qualquer lugar:

. $HOME/.ssh/ssh-agent.env 2>/dev/null
if [ "'ssh-add -l | grep id_rsa'" = "" ]; then
  mkdir -p $HOME/.ssh/
  ssh-agent >$HOME/.ssh/ssh-agent.env
  . $HOME/.ssh/ssh-agent.env
  ssh-add
fi

Você pode executar putty com:

. ./agent.sh; putty

ou:

. ./agent.sh
putty

O "." (ponto ou ponto) também é importante, ele exporta as variáveis de ambiente do script executado. Na primeira vez, ele perguntará a senha do seu arquivo de chave, na próxima vez que o putty será executado sem perguntar a senha.

    
por 25.04.2016 / 12:39

Tags