Existem duas máquinas Linux, A e B. Os scripts em execução em A precisam poder fazer o SSH em B. Portanto, A gera uma chave pública (provavelmente ssh-keygen
gerada id_rsa.pub
) e, em seguida, usa sua respectiva chave privada (novamente, provavelmente id_rsa
) para criar essa conexão SSH.
Se qualquer coisa que eu disse acima estiver incorreta ou enganada, comece me corrigindo!
Supondo que eu esteja mais ou menos no alvo:
- Como A "fornece" B sua chave pública (
id_rsa.pub
)? Isso precisa ser um processo manual ou pode ser automatizado? Se manual, qual é o processo? Se automatizado, qual é o comando? Quando B "obtém" essa chave pública, para onde ela é armazenada? - Ao iniciar a conexão SSH com B, como A “usa” sua chave privada (
id_rsa
) como parte dessa conexão?
linux
ssh
public-key-encryption
user3178622
fonte
fonte
Respostas:
ssh-keygen
gera as chaves pública e privada, que residem inicialmente apenas localmente. Dar a chave pública a outro host é algo que o usuário precisaria fazer manualmente, enviando-a para alguém responsável pelo servidor B ou, se você tiver uma conta com uma senha, poderá fazer login e colocá-la lá. Para permitir login sem senha no servidor B, você precisará adicionar sua chave pública ao arquivo ~ / .ssh / allowed_keys no servidor B (uma chave pública por linha, pode haver qualquer número de chaves nesse arquivo). Existe um comando linuxssh-copy-id
que copiará o ID para você e o colocará no arquivo.Por padrão, o ssh usará o arquivo ~ / .ssh / id_XXX como sua chave privada. XXX pode ser rsa, dsa ou qualquer protocolo para o qual uma chave foi gerada. IIRC, dsa é antigo e não deve ser usado. Se você quiser usar uma chave privada diferente, poderá especificá-la no seu comando ssh usando
-i
. Contanto que a chave privada usada corresponda a uma chave pública na máquina remota (no arquivo de keys_computadas da conta do usuário na qual você está efetuando login), não será necessário fornecer uma senha.fonte
ssh-keygen
é executado, você menciona que as duas chaves "residem apenas localmente"? Onde?!? Como em que pasta posso navegar e verid_rsa.pub
eid_rsa
? (2) Eu pensei quessh-add
era o comando para adicionar uma chave públicaauthorized_keys
, não? Qual é a diferença entressh-copy-id
essh-add
? Obrigado novamente!~/.ssh/id_rsa
re '2', o ssh-add não serve para adicionar as chaves_comitentes, mas sim para adicionar a um chaveiro. Eu não usei o ssh -adicione embora. O ssh-add tem a ver com permitir que você não precise digitar uma frase-chave sempre que usar uma chave que exija uma frase-chave. Portanto, se suas chaves ssh não exigirem uma frase-chave, acho que não há motivo para usar ssh-add e acho que você ainda precisará usar ssh-copy-id ou fazer o manual de copiar a chave pública no authorized_keyssim
mas B precisa que a chave pública de A seja listada no arquivo allowed_keys de B para que A possa se conectar a B
também é possível excluir id_rsa.pub e ssh para B e ainda funcionará, porque a chave pública é gerada atualizada a cada conexão ssh e não armazenada em nenhum id_rsa.pub
manual - algo como
a partir de um-
ou ainda mais manualmente, para dividir o comando
A $
cat id_rsa.pub | ssh user@host 'cat>~/a.a'
depois em B, verifique se ~ / .ssh existe e faça
cat a.a >> ~/.ssh/authorized_keys
e você pode selecionar as teclas autorizadas de B antes e depois para garantir que a chave esteja listada.
Ou você pode enviar um email id_rsa.pub para uma conta de e-mail, e em B, B pode verificar o e-mail e anexar o conteúdo de id_rsa.pub ao arquivo
automaticamente
O comando ssh-copy-id
Você precisa poder fazer o ssh, portanto, precisa de acesso por senha
Em vez de executar o ssh user @ host, você faz o ssh-copy-id user @ host e é solicitada uma senha, você a digita, está inserida e ela copiará a chave pública. E da próxima vez que você usar o ssh user @ host, ele usará a chave
~s. / Sh
bem, eu não sei muito sobre isso, no topo da minha cabeça, mas tudo o que é criptografado com uma chave pode ser descriptografado com a outra chave, e se identificar é um pouco diferente do envio de dados .. e pode haver algo sobre uma chave temporária também.
fonte