Portál AbcLinuxu, 8. května 2025 22:27

Dotaz: SSH - nefunguje keyfile

1.10.2009 22:40 Pavel
SSH - nefunguje keyfile
Přečteno: 799×
Odpovědět | Admin

Dobrý den, potřeboval bych se připojovat z mého PC na vzdálený server. K tomu účelu jsem od správce už dostal vygenerovaný soukromý klíč, kterým jsem se až do nedávna z win úspěšně připojoval přes putty. Ale z nějakého důvodu mi nefunguje při přihlášení přes ssh. Respektive k serveru se připojím, co se mi podařilo vyčíst z parametru -v tak to i odešle klíče, ale hned na to se mě zeptá na heslo, bez kterého mě dál nepustí:

pavel@pavel-PC:~/.ssh$ ssh -p yyyyy -l "name" -v "server.cz"
OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to server.cz [xxxxxxxxx] port yyyyy.
debug1: Connection established.
debug1: identity file /home/pavel/.ssh/identity type -1
debug1: identity file /home/pavel/.ssh/id_rsa type -1
debug1: identity file /home/pavel/.ssh/id_dsa type 2
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '[server.cz]:yyyyy' is known and matches the RSA host key.
debug1: Found key in /home/pavel/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/pavel/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/pavel/.ssh/identity
debug1: Trying private key: /home/pavel/.ssh/id_rsa
debug1: Next authentication method: password
name@server.cz's password: 

Abych ještě upřesnil jak jsem se k tomu dostal:

  1. ssh-keygen -t dsa
  2. id_dsa jsem nahradil svým klíčem
  3. cat id_dsa.pub >> authorized_keys
  4. chmod 700 . chmod 600 authorized_ keys chmod 600 id_dsa chmod 644 id_dsa.pub

Upřímně se v tom debug výpisu moc nevyznám, ale docela mě zaráží řádek:
debug1: Offering public key: /home/pavel/.ssh/id_dsa
podle toho co vím by to měl být spíš id_dsa.pub...

Jestli někdo víte co s tím, tak budu vděčný za jakékoliv konstruktivní rady, už se s tím babrám docela dlouho a několik posledních dnů jsem zaseknutý v tomhle bodě...


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 1.10.2009 23:22 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
1. ssh-keygen -t dsa 2. id_dsa jsem nahradil svým klíčem 3. cat id_dsa.pub >> authorized_keys 4. chmod 700 . chmod 600 authorized_ keys chmod 600 id_dsa chmod 644 id_dsa.pub
Máš to nějak blbě...

id_dsa je tvůj privátní klíč. Ten musíš mít u sebe.

id_dsa.pub je tvůj veřejný klíč. Ten musíš nakopírovat do uthorized_keys vzdáleného stroje.

Tj. 3. je nějaká divná (mělo by to být asi cat id_dsa.pub | ssh blabla 'cat >> authorized_keys') a ve dvojce nevím, co tím myslíš...

Btw. zkus víc véček (ssh -vvv), bude ukecanější ;-)
2.10.2009 01:20 misko
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
nj, sprav si v tom trochu poriadok. Neviem, co si mal na mysli v bode 2. Kazdopadne ja si spominam na jeden krasny zazitok, ked mi autentifikacia pomocou ssh kluca nesla. Skusal som snad vsetky mozne nastavenia tykajuce sa klucov atd., ale bezvysledne. Nakoniec bol problem v tom, ze uzivatel nemal ziadne heslo a ssh server na druhej strane mal zapnutu options nieco typu AllowEmptyPassword NO :)
2.10.2009 07:39 cronin | skóre: 49
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
Abych ještě upřesnil jak jsem se k tomu dostal: ...
Ano, spravne, treba to upresnit. To, co si napisal, je zmatok. Nie je jasne, co si spustal v ktorom adresari, dokonca ani to, co si spustil na serveri a co na klientovi. Typujem dve mozne priciny, preco to nefunguje:

A) Sukromny a verejny kluc spolu akosi nekoresponduju - obsahom ci umiestnenim; pozri poznamky predrecnikov k bodu 2).

B) Kluce nie su dostatocne chranene spravnymi pristupovymi pravami, co je najcastejsia pricina tychto problemov.

Prenos privatneho kluca spod windowsu do linux, resp. vseobecne prenos privatneho kluca odkialkolvek kamkolvek je nezmysel. Ten kluc je privatny prave preto, ze naveky zostava na tom jedinom mieste, pre ktore sa zrodil, a akykolvek jeho unik mimo je porusenim bezpecnosti, ktoru ma zabezpecovat.

2.10.2009 20:51 Pavel
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Všechno jsem dělal na svém PC (na server nemám přístup).
Postup ještě jednou, snad trochu čitelněji:

Hlavně, soukromý klíč (.ppk) mám už vygenerovaný od správce serveru a potřebuji se připojovat pouze z PC na server, ne obráceně, takže jestli jsem to teď pochopil dobře ani bych u sebe veřejný klíč mít nemusel (veřejný klíč k soukromému klíči, který jsem dostal, je správně uložený na serveru).
Tahle část (generování nových klíčů) je pravděpodobně zbytečná, ale známý my to takhle radil a nemělo by to nic zkazit:
v adresáří ~/.ssh
ssh-keygen -t dsa
id_dsa jsem přepsal svým (na serveru vygenerovaným) klíčem, který mám uložený bokem.
Nastavil jsem práva:
id_dsa 600
id_dsa.pub 644
~/.ssh 700
(můj home má 755, takže tady by být problém neměl)
a potom už se jenom zkusil přihlásit pomocí:
ssh -p 01.234.567.890 -l "name" -v "server.cz"

Jinak proč by měl být přenos klíče blbost? Pokud by to bylo mezi počítači, tak bych dokázal pochopit, že se zvyšuje pravděpodobnost, že někdo někde klíč zachytí, ale jenom z win na linux a to na stejném počítači?

2.10.2009 21:08 cronin | skóre: 49
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Na klientovi vygeneruj kluc:
client$ ssh-keygen -t dsa
Subor .pub prenes na server. Na serveri jeho obsah pripoj k suboru authorized_keys:
server$ cat id_dsa.pub >> ~/.ssh/authorized_keys
Over spravne pristupove prava na serveri:
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys
Jinak proč by měl být přenos klíče blbost?
Lebo spravca servera, ktori Ti ten private kluc pre Tvojho klienta poslal, si ho moze nechat, moze ho poskytnut niekomu inemu, alebo mu ho niekto iny moze ukradnut. Kazdy, kto ho akymkolvek sposobom ziska, zaroven ziska aj pristup k Tvojmu kontu. Privatny kluc je proste PRIVATNY a nema ho mat nikto okrem majitela uctu. Ani spravca servera nie. Ak to tak nie je, je cela wannabe-security v haji a namiesto trapenia sa s SSH klucmi mozete pouzivat rovno telnet.
2.10.2009 23:42 Ash | skóre: 53
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Píše že na server nemá přístup, takže nezbývá než nahrát si privátní klíč do ~/.ssh a zbytek řešit se správcem serveru.
2.10.2009 23:52 Ash | skóre: 53
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Jinak správnější postup by opravdu byl vygenerovat si vlastní pár klíčů a privátní dát správci serveru, aby jeho prostřednictvím zařídil přístup, ovšem v takovémto případě není ani generování privátního klíče žádné drama, pokud je jeho přenos zabezpečen tak tím akorát ztrácí tu "privátnost" a v případě zneužití nemůže být majitel účtu popotahován že "to byl on", protože má snadný protiargument že klíč dostal od správce a mohl ho tedy zneužít kdokoliv (správce, jeho kamarád, prostě uživatel nad klíčem neměl kontrolu). Bezpečnost tím nijak ohrožena není, správce se k účtu může snadno přihlásit jinými způsoby, rozdíl je že to akorát nemůže hodit na uživatele, protože privátní klíč má i on-správce, a uživatel je tak paradoxně chráněn :D Samozřejmě bezpečnost jeho účtu a dat na serveru je v tomto případě závislá i na tom, jak dobře chráni a smazal atd. atd. privátní klíč správce, ale to je nakonec i v případě že tam správce nechá nějaké děravé služby apod., takže jak říkám, žádné drama. Samozřejmě tam, kde chcete aby vaše autentizace byla jednoznačná "jsem to já a nikdo jiný" si musí člověk vygenerovat privátní klíč sám, to je jasné, ale není to tolik o bezpečnosti, jako o jednoznačnosti autentizace.
2.10.2009 23:54 Ash | skóre: 53
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Nejlepší je si po získání přístupu vygenerovat vlastní klíč a starý pár klíčů smazat, a oznámit změnu klíče na domovní nástěnce ;) je to asi jako "po přihlášení si heslo změňte".
2.10.2009 10:26 miro
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pomocí přepínače -i můžete ssh klientovi vnutit natvrdo soubor, odkud má vzít váš soukromý klíč. Pokud to neprojde, zřejmě nemáte na serveru v příslušném souboru authorized_keys zkopírován veřejný protějšek tohoto soukromého klíče. Asi bych to zkusil s novým párem klíčů (pokud máte možnost si ten veřejný umístit na server sám), a pokud to znovu selže, asi vám nezbude než požádat o spolupráci administrátora serveru. V logu serveru o tom spojení budou další informace, které pomůžou dál v pátrání (možná server hledá váš veřejný klíč v jiném umístění, než kam jste ho ve skutečnosti umístil, na to bych se zaměřil ze všeho nejdřív), administrátor navíc může zvýšit úroveň verbosity serveru, aby získal další podrobnosti. Pokud na serveru běží selinux, podíval bych se též, jestli ten pokus o použití klíče nezabíjí právě on.
2.10.2009 11:06 qk
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten klic, ktery jsi pouzival pres putty nefunguje, protoze PuTTY používá jiný formát klíčů než OpenSSH

ohledne debug vypisu - vse je OK az po:
debug1: Authentications that can continue: publickey,password     - seznam moznych zpusobu autentizace
debug1: Next authentication method: publickey
debug1: Offering public key: /home/pavel/.ssh/id_dsa     - nabidnutej dsa klic
debug1: Authentications that can continue: publickey,password     - neni akceptovan proto znovu seznam
debug1: Trying private key: /home/pavel/.ssh/identity
debug1: Trying private key: /home/pavel/.ssh/id_rsa     - nabidnutej rsa klic
debug1: Next authentication method: password     - opet neni akceptovan znovu seznam
name@server.cz's password:      - uz to chce normalni uzivatelsky heslo


Jinymi slovy nepasujou klice - jak z toho ven?

Vlez na server a zkontroluj jestli je v ~/.ssh/authorized_keys tvuj public key a jestli zacina na novem radku a ne na konci predchoziho klice !!!!

Na tvym PC by melo byt v ~/.ssh tvoje id_dsa

A uz by vsecko melo byt ok
2.10.2009 11:08 qk
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
a jeste dodam, ze to:
debug1: Offering public key: /home/pavel/.ssh/id_dsa
je v poradku, nebot tvuj pocitac nabizi private klic serveru...
2.10.2009 21:39 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Jenom doplním, že součástí Putty je nástroj, který umí konvertovat klíč z formátu OpenSSH do formátu Putty, zkuste, zda to neumí i opačně. Pokud by to neuměl, vygenerujte si na linuxu klíč nový, ten přidejte do authorized_keys – buď tam můžete nechat oba, nebo si nově vytvořený klíč zkonvertujte i do Putty a ten starý z authorized_keys smažte (pokud jej používáte jen vy, což je rozumné).
2.10.2009 22:10 Pavel
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Tak to bude přesně ono.. :) Moc děkuji. Vůbec mě nenapadlo, že by to mohly být jiné formáty...
wolf09 avatar 2.10.2009 12:31 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky se mi stalo, ze klice nesly, protoze home adresar uzivatele mel mod vetsi nez 755.
Zkusili jste to vypnout a znovu zapnout ?
Řešení 1× (houska)
2.10.2009 22:15 Pavel
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak problém vyřešen.. Nakonec to bylo jenom v tom jiném formátu putty a open-ssh klíčů. Všem moc děkuji.
Jinak kdyby měl někdo stejný problém, tak klíč jde konvertovat pomocí puttygen:
puttygen /cesta/k/putty_klic.ppk -O private-openssh -o /cesta/k/novemu_klici
3.10.2009 07:23 cronin | skóre: 49
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
Jinak kdyby měl někdo stejný problém, tak ...
... tak nech to vyriesi tak, ako sa to ma - vygenerovanim noveho klucoveho paru pre nove pristupove miesto - a podobne misuse pouziva iba ak nic ine nie je mozne.
3.10.2009 08:11 Ash | skóre: 53
Rozbalit Rozbalit vše Re: SSH - nefunguje keyfile
To není žádné misuse, překopírování soukromého klíče z jednoho adresáře do druhého a jeho případná konverze není narušení bezpečnosti. Když si koupím nový notebook nebo přeinstalovávám systém tak si tam také raději nakopíruji starý klíč, než na všechny servery nahrávat nový. Ale nechci rozpoutat nějaké dohadování samozř., pokud máte nějaký releventní link že soukromý klíč nesmí opustit adresář kde byl vygenerován tak sem s ním.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.