OSX ssh-agent: sem colar senha e problema com o PKCS # 8?

37

Eu uso o ssh na minha máquina e configurei uma senha longa e não amigável para o ser humano, que é salva no meu gerenciador de senhas. O que me deixa louco toda vez é que não consigo colar na janela da foto abaixo. Eu conheço a Remember password in my keychainopção e a uso. Às vezes eu tenho que inserir um novo. Por que não consigo colar em um campo de senha?

O mesmo ocorre com a caixa de diálogo exibida ao conectar discos criptografados.

janela ssh-agent

Algumas atualizações:

  1. Descobri como posso contornar a caixa de diálogo: basta usar ssh-add -K ~/.ssh/id_rsae, em seguida, posso colar a senha no terminal.
  2. Como mattmcmanus mencionou, minha chave é criptografada usando o pkcs8que foi quebrado no agente ssh de Yosemite. Isso não tem relação com o problema acima, mas ocorreu-me ao mesmo tempo (leia aqui ).
  3. o uso ssh-add ainda não corrige isso para discos criptografados.
joni
fonte
Você deve aceitar uma das boas respostas abaixo. Você também deve evitar fazer várias perguntas em uma única postagem.
Alain O'Dea
1
@ AlainO'Dea Primeiro, sim, eu deveria, essa é uma pergunta antiga e eu esqueci. Porém, para a segunda coisa: no momento da pergunta, não estava claro que o segundo problema (PKCS quebrado) surgiria, consulte o histórico de edições.
Joni

Respostas:

22
  1. O diálogo para ssh-agente pode ser contornado adicionando a chave na consola / terminal: ssh-add ~/.ssh/id_rsa. Você pode colar a senha no terminal. Além disso, adicionar a -Kopção para ssh-addsalvará o chaveiro conforme comentário de Oliver Lacans.
  2. Como mattmcmanus disse, a id_rsacriptografia usando PKCS parece estar quebrada no agente ssh OSX Mavericks. A solução rápida é descriptografar o arquivo de chave e criptografá-lo novamente com o procedimento ssh padrão (método de derivação de chave: MD5 ...):

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again
joni
fonte
3
Embora a resposta de joni seja excelente, eu recomendaria ssh-add -K ~/.ssh/id_rsaquais "Armazenar senhas no seu chaveiro" de acordo com ssh-add --help. Isso impedirá que você precise executar novamente ssh-addtoda vez que abrir uma nova guia do shell ou quando reiniciar sua máquina.
Olivier Lacan
2

É uma chave PKCS # 8 e você está em desvantagens? Se assim for, isso parece ser completamente quebrado. Não tenho certeza se existe uma solução ainda.

mattmcmanus
fonte
1
por que deveria ser isso? O problema até agora é que o campo de senha na caixa de diálogo não aceita colagem. Isso já existia na versão 10.8, mas, devido à atualização para a 10.9, tenho que inserir a senha novamente.
Joni
OK, você parece estar certo ... veja minha própria resposta.
Joni
2

No Mac OS X El Capitan, o comando ssh-add pode fazer isso com a opção -K :

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

Você pode colar sua senha neste prompt com ⌘-V .

Uma sessão para isso é assim:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

Trecho relevante de SSH-ADD (1) trazido pelo man ssh-add :

-K Ao adicionar identidades, cada frase secreta também será armazenada em seu chaveiro. Ao remover identidades com -d, cada senha será removida do seu chaveiro.

NOTA : Sua senha não será mostrada no shell, mas será exposta a todos os aplicativos em execução através da área de transferência. Uma solução de autótipo seria mais segura.

Alain O'Dea
fonte
1

Você pode executar um script como este no AppleScript Editor:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell
Lri
fonte
1
obrigado, isso ajudará nas caixas de diálogo 'discos criptografados'. Mas por que a apple desativou esse campo para colar ???
Joni
Útil, mas sim, não pense que isso resolve o problema do PKCS # 8, onde, mesmo que você digite a senha correta, é uma senha incorreta.
Bob Aman
Não faz sentido. Agora, sua senha altamente secreta está aberta a todos. É por isso que o TS usa um gerenciador de senhas para ter suas senhas centralizadas e altamente protegidas.
Whaefelinger 6/11
1
Não funciona no El Capitan. Primeiro, ele solicita que o Editor de scripts obtenha o Controle assistido, uma System Events got an error: Script Editor is not allowed assistive access. vez que é permitido em Preferências do sistema | Segurança e privacidade que receboSystem Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
Alain O'Dea
1

Eu tive o mesmo problema. Depois de encontrar essa pergunta, continuei procurando e encontrei uma resposta em outro lugar. Essa é uma pergunta antiga, mas não tem respostas aceitas e ainda está no alto das listas de pesquisa. (não tenho certeza da etiqueta da troca de pilhas sobre isso).

RE não sendo capaz de copiar / colar: Aparentemente, por design. A intenção é impedir todo acesso ao campo a partir da área de transferência para impedir que um programa mal-intencionado raspe caixas de senha. Eu acho que colar (e não cortar) deve ser permitido, mas talvez haja alguma razão técnica.

Para as coisas do ssh-agent, a partir de (pelo menos) Yosemite, a -Kopção ssh-add -K ~/.ssh/blahfaz o que você deseja - digite a senha uma vez, ela é armazenada em seu chaveiro, e o ssh-agent será desbloqueado de forma transparente para você. Para tentar ser mais seguro, coloquei minhas senhas ssh em um chaveiro separado que se fecha periodicamente.

PericousApricot
fonte
Alguma chance de você compartilhar um link para a resposta que encontrou?
John Carney
Me desculpe por isso! Para as coisas do agente ssh, deparei-me com developer.apple.com/library/mac/documentation/Darwin/Reference/…
PerilousApricot
0

O uso do brew openssl e openssh corrige o problema.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

Não tenho certeza se a força que vincula o openssl quebra alguma coisa no Mavricks. Até agora, não notei nenhum problema.

simple10
fonte
1
Não existe (mais a) brewfórmula para openssh.
Adam Liter
Ainda existe, brew tap homebrew/dupesno entanto. Dito isto, essas etapas não parecem resolver esse problema para mim.
Bob Aman
@ simple10 Esta resposta fornece pouco ou nenhum valor. Você deve pelo menos fornecer a versão do openssl / openssh que corrige o problema. Além disso, explique por que isso aconteceria.
Whaefelinger 6/11