Ola,
Aquí verá como conectarse a un PC remotamente mediante SSH só introduce o contrasinal a primeira vez e, aínda que reiniciamos os dous equipos, non se nos solicitará o contrasinal de novo.
Pero, vexamos primeiro unha breve explicación sobre o que é SSH:
SSH é un protocolo, un medio de comunicación entre dous ordenadores. Permítenos xestionar un equipo de xeito remoto. Cando accedemos a outro ordenador por SSH, o comando que introducimos nese terminal executarase no outro equipo, deste xeito xestionámolo / controlámolo.
Todo o que transmite SSH, está cifrado e cunha seguridade bastante boa.
Agora veremos como en só tres pasos configuraremos PC # 1 para acceder PC # 2 sen introducir o contrasinal:
Temos a seguinte situación:
PC # 1 - » Queres conectarte a PC # 2, sen ter que introducir un contrasinal cada vez que tenta conectarse a este outro PC.
PC # 2 - » Ten instalado o servidor SSH. Este é o único PC # 1 conectarase e farao sen introducir un contrasinal. Neste PC hai un usuario chamado raíz.
Comecemos ...
1. En PC # 1 escribimos o seguinte:
- ssh-keygen -b 4096 -t rsa
Isto xerará unha clave pública. Para non confundirme demasiado coas "claves públicas e privadas", explicareino moi sinxelamente.
Supoñamos que tes dúas chaves da túa casa no peto, unha que dás á túa moza desde que vives xuntas e coa outra quedas só, non a dás a ninguén. Ben, esa chave que lle entregaches á túa moza permitiralle entrar na túa casa sen dicirlle, sen pedir o teu permiso, non? esa é unha clave pública, unha "clave" que permite a un PC acceder a outro sen ter que pedir o seu permiso (é dicir, sen introducir nome de usuario + contrasinal)
Cando poñan ese comando, aparecerá:
2. Só tes que premer [Entrar], un segundo despois prememos de novo [Entrar], e un segundo despois prememos unha vez máis [Entrar]. Quero dicir, presionariamos [Entrar] un total de tres (3) veces, só o prememos ... non escribimos nada 🙂
Cando facemos isto, aparecerá algo moi similar ao seguinte:
Listo, xa temos a clave pública ... agora hai que darlla a quen queiramos (como o exemplo, dala á nosa moza jaja)
O que queremos é iso PC # 1 conectarse a PC # 2, xa en PC # 1 fixemos todo o anterior, en PC # 2 Non fixemos nada. Bo, PC # 2 ten por exemplo unha dirección IP 10.10.0.5.
3. Metemos PC # 1 Seguinte:
- ssh-copy-id root@10.10.0.5
O que fai isto é simplemente darche a clave pública de PC # 1 a PC # 2, é dicir, dá a PC # 2 a clave pública de PC # 1Mentres PC # 1 garda a súa chave privada, xa sabes; esa clave que non se lle dá a ninguén. É importante non cometer erros co usuario, é dicir, se o usuario "raíz"Non existe no PC # 2, daranos un erro, é importante ter claro en que usuario usaremos para iso, ademais de que ese usuario co que configuramos o acceso sen contrasinal, será o mesmo co que teremos que acceder no futuro". Unha vez feito isto, debería ter o seguinte aspecto:
No paso anterior, deben introducir o contrasinal do usuario PC # 2.
E voilá ... todo está configurado ????
Como nos aparece no terminal, probemos se realmente todo funcionou ao 100%. Para probar, poñemos:
- ssh root@10.10.0.5
Se queren acceder a outro ordenador tamén sen introducir sempre un contrasinal (PC # 3 por exemplo), simplemente damos a nosa clave pública e xa está, é dicir, unha vez que fixemos o paso #1 y #2 xa non teremos que facelo. Se queremos acceder PC # 3 por exemplo, que ten por IP 10.10.99.156 só poñemos:
- ssh root@10.10.99.156
Ata aquí o tutorial.
Explique que o nivel de seguridade cando falamos de SSH é realmente alto, a metáfora coa que expliquei algúns pasos (o de dar a chave á nosa noiva) pode que non sexa o máis adecuado jaja, xa que a nosa moza podería dar a chave para alguén máis. Cando falamos de SSH, os principios de seguridade son fáciles de explicar, cando intentamos acceder ao noso ordenador (PC # 1) comproba se no PC # 2 hai unha clave pública do noso ordenador (neste caso hai, porque a configuramos así), entón, se a hai, é sinxelo, comproba se esa clave pública é idéntica á mesma que a nosa clave privada (a que non llo demos a ninguén). Se as claves son idénticas permítenos acceder, doutro xeito e como medida de seguridade, non nos permite acceder remotamente ao outro ordenador.
Entón agora xa sabes ... dar á nosa moza a chave da casa non é o máis seguro, pero compartir claves e acceder a outro ordenador remotamente mediante SSH é seguro ^ _ ^
Fáganme saber dúbidas ou preguntas, queixas ou suxestións.
Saúdos a todos.
43 comentarios, deixa os teus
Realmente non entendo como vostede é tan paranoico coa seguridade comete un erro así. Se está no paso onde di:
Enter passphrase (empty for no passphrase)
Non escribimos nada, perdémonos se un usuario consegue acceder ao noso PC e abrir un terminal, xa que executa automaticamente:
ssh root@10.10.0.5
Entrará sen pedir contrasinal.
Se alguén accede ao meu portátil, si, pode acceder ao PC # 2 sen ter que introducir o seu contrasinal. Non obstante, como dis, estou paranoico en canto á seguridade, realmente cres que acceder ao meu portátil é algo tan sinxelo? HAHA.
Cando sempre me levanto, sempre bloqueo a pantalla, se non, despois de 30 segundos de non haber actividade no rato ou no teclado do portátil, aínda se bloqueará 😉
Se alguén rouba o seu portátil, por moito que a sesión estea bloqueada, o acceso aos ficheiros é trivial, cuestión de 5 minutos cun arranque Linux desde USB. E unha vez que se accede aos ficheiros, xa que a clave privada non está protexida, pode usala directamente ou mellor copiala e acceder cómodamente a calquera dos seus servidores desde a súa casa. En realidade, o proceso é tan rápido que nin sequera terías que sabelo. En 5 minutos vas ao baño ou o que sexa, xa se pode facer todo.
O xeito seguro é poñer un contrasinal na clave privada e despois usar ssh-agent para que lembre o contrasinal de toda a sesión (só ten que engadir ssh). Deste xeito, só pediría o contrasinal a primeira vez e, na práctica, terías unha conexión sen contrasinal o 90% das veces, ademais de estar protexido contra roubos ou intrusións.
É trivial acceder aos ficheiros? Algunha vez escoitou falar do cifrado completo do disco? (luks + cryptsetup)
Si, por suposto, se tes todo o disco cifrado é outra historia, pero o 90% dos usuarios non o fan porque non saben como facelo e en moitos casos nin sequera os compensa. Pola contra, non gardar contrasinais non cifrados ou claves privadas sen protección no disco é algo que todos poden facer e unha boa práctica en xeral.
Gardar claves privadas non protexidas nun disco cifrado é como aparcar o coche deixando as portas abertas, pero contratar un garda de seguridade cun doberman para protexelo. Funciona, si, pero é moito máis doado e eficiente bloquealo directamente.
Os MMm non lle fan tanto á mamada, aínda que poden crear unha interface virtual, asignar unha IP e conectarse con esa IP virtual, polo que aínda que eliminen a clave non poderán atopar a máquina porque a clave só funciona para unha IP determinada. Tamén depende do que queiran, funciona perfectamente para min como o describe o compañeiro, teño un servidor privado na miña casa non necesito aumentar a seguridade porque ten unha VPN configurada.
E todo isto pode aplicarse a un terminal de Windows que ten que conectarse a varios * NIX?
Teño masilla pero tamén podo usar Securecrt (agora téñoo con guión)
No terminal de Windows (cmd) estou convencido de que non, non será posible alí.
Non obstante, se usas Putty poderías probalo, podería funcionar.
Un saúdo e benvido ao noso sitio 😀
Putty xa acepta o parámetro -pw en comandos adicionais. (ex: -pw12345)
De feito, Super Putty é máis fresco que o simple Putty. (É un marco para Putty)
Non tes que poñelo.
Grazas pola publicación, moi útil. É un pouco aburrido iniciar sesión en SSH para todo.
Ola e moitas grazas pola súa visita e comentario 🙂
Nada amigo, un pracer saber que foi útil ... se podemos axudalo doutro xeito, estamos máis que encantados 😉
Saúdos e benvidos ao sitio.
Necesito conectarme a unha computadora windonws desde o meu linux como desde o meu terminal
Excelente .. realmente inspira ver este tipo de tutoriais, dame ganas de contribuír tamén coas miñas experiencias xa simplificadas para que a comunidade poida aproveitalas. Moitas grazas desde El Salvador.
Estou conectando cunha máquina con ubuntu a unha que ten debian pero dame un erro no que non pode autenticarse e, polo tanto, pídeme o contrasinal .. por que vai pasar isto? É que as versións do ssh-keygen difiren ou que está a suceder?
Pon aquí o erro que che dá para poder axudalo mellor 😉
Ademais, podes probar a poñer isto nun terminal:
sudo mv $HOME/.ssh/known_hosts /opt/
O que fai isto é limpar as conexións (historial de conexións) SSH que tivo.
E se quixera usar a mesma clave pública para varios servidores, podería facelo ou teño que crear unha clave para cada servidor ao que quero acceder? Vouno probar de todos os xeitos, pero nalgún servidor inútil para non estragar algo útil.
Grazas e saudos.
Como o fixen no meu portátil, é unha clave diferente para cada servidor, de feito, creo que non é posible usar a mesma clave para varios ... porque a identificación de cada servidor é única, como unha impresión dixital 🙂
lembranzas
Ola señor da area. Estiven lendo claves e descubrín que o par de claves (públicas e privadas) serven ao servidor-cliente para enviar e recibir retos e así identificarse, polo que non ten nada que ver co contrasinal que usa para acceder ao servidor, este último úsase para "pegar" a clave pública nas de confianza do servidor. Podes usalo en cantas queiras ou necesites.
Non sei se me expliquei, pero a broma é que para poder usar o teu par de claves noutros servidores, despois de seguir o teu tutorial, só tes que facer:
ssh-copy-id outro.usuario@otra.ip
escriba o seu contrasinal para este outro servidor
E listo.
lembranzas
Ola, grazas pola guía, foi a única que me axudou. Agora que quero facelo noutro par de ordenadores, recibo o seguinte:
$ ssh-copy-id -p 4000 lm11@148.218.32.91
Mala porta 'máscara 077; proba -d ~ / .ssh || mkdir ~ / .ssh; gato >> ~ / .ssh / chaves_autorizadas '
Grazas pola axuda.
Fixen o que nos dixo, pero segue pedíndome o contrasinal. Aclaro esta conexión que estou a facer entre dous servidores Linux hat vermellos ... Que máis podería ser?
Xa mirei o / etc / ssh / sshd_config
Xa reiniciei os dous servidores
PC2 = sombreiro vermello Linux 6.4
PC2 = sombreiro vermello Linux 5.1
O servizo ssh debe estar configurado correctamente (ficheiro / etc / ssh / sshd_config en PC2) para que funcione.
corrección ...
PC1 = Centos 6.4
PC2 = Red Hat 5.1
Ola compañeiros, teño a necesidade de establecer unha relación de confianza entre 1 servidor Linux Centos 5.3 e un Unix Sco5.7 pero teño o problema de que ao facer o paso 3 de copiar a clave de Linux a Unix recibo a mensaxe / usr / bin / ssh-copy-id: ERRO: Non se atoparon identidades, por que podería ser?
grazas
Seguín o tutorial paso a paso. Non me produce ningún erro, pero ao final cando me conecto de PC1 a PC2 segue pedíndome o contrasinal de root cada vez que me conecto.
Alguén pensa cal podería ser?
Parece que despois de xerar a clave tes que executar ssh-add para que o axente de autenticación poida usala.
Cando elimino a clave de acceso, non recoñece nada, pirateáronme, axuda, non entra en nada
Moitas grazas, funcionou perfectamente
Moitas grazas pola guía! É moi sinxelo e resulta útil para cando tes os teus servidores andando e non ter que estar introducindo claves e así automatizar as cousas 😀
Grazas.
Descoñecía o uso de ssh-copy-id e foi bastante automático.
A verdade é que estiven ata o punto de escribir o contrasinal, así que o que fago é gardalo cunha paráfrase DEFAULT, que se mantén durante a sesión.
Non me importa escribilo unha vez que acendo o PC, o rollo ten que poñelo cada vez que se desconecta ou cousas polo estilo
SSH Non Jutsu!
Ola
bo titorial ... pero se quero pasar información ??? como podo facelo?
Ola, a túa contribución é moi interesante, pero teño un par de dúbidas sobre un tema similar
Olá
Probe os pasos anteriores, pero ao intentar copiar a clave no servidor 2 (PC2) dime que o comando non existe.
bash: ssh-copy-id: comando non atopado
Podo copiar a clave manualmente?
Excelente !! Buscaba unha explicación tan sinxela e funcionara perfectamente
grazas!
Excelente contribución.
Moitas grazas, axudoume moito.
Ola, gustaríame saber se hai un xeito de facer este comando ssh-copy-id. Dende que instalo Open ssh para Windows, ssh funciona para min en DOS pero non ten este comando ssh-copy-id. Gustaríame saber como enviar esta clave pública ao outro servidor linux (servidor linux). Moitas grazas.
Ola. Necesito establecer unha relación de confianza entre un servidor Linux e unha máquina Windows. Instala o SSH para Windows e funciona para min. Pero este comando ssh-copy-id non está dispoñible nesta ferramenta.
Saben doutro xeito de facelo sen usar ssh-copy-id.
Moitas grazas polos teus comentarios.
Pero a cuestión disto é poder conectarnos sen contrasinal, se poñemos unha frase de contrasinal pediríanos ese paso para conectarnos e non era o obxectivo desta
Resultoume moi útil para o módulo fp do meu ordenador, grazas 🙂
Grazas!!!
Algúns se preocupan do molesto que poida ter ter que introducir o contrasinal (frase de contrasinal), para iso, como se mencionou anteriormente, é «usuario-axente» e que tamén o teño configurado con Keepass e a súa función Auto-Type, polo que só Invoco o terminal e coa combinación de teclas que configuraron lista, tamén teño "alias" para cada solicitude e todo é moi sinxelo.
Bo titorial.
Divírtete moito !!
Moi boa información 🙂 pero teño unha pregunta ...
Teño PC10 que é onde gardo a información, a información envíase de pc1 - pc2 - pc3 a PC10, como podo facer que pc1, pc e pc3 usen a mesma clave para acceder a PC10 sen clave.
Graciñas ...
Como podo listar o que hai en machine1 no bash de machine2 sen ir poñer ssh ip @ hosts ao bash de machine1. Non sei se entendo xD
Pasaron 10 anos desde esta publicación e sigo visitándoa sempre que a necesito. Como algúns outros titoriais aquí resistiron a proba do tempo. Grazas e saudos!