Portál AbcLinuxu, 28. dubna 2024 19:21


Dotaz: Připojení přes SSH pomocí authorized keys

20.9.2017 09:57 Pavel
Připojení přes SSH pomocí authorized keys
Přečteno: 414×
Odpovědět | Admin
Příloha:
Zdravím. Potřeboval bych poradit s SSH - ověření pomocí klíčů. Jako SSH server mám Raspberry (Openelec). Když se přihlašuji pomocí hesla, vše funguje jak má. Chtěl bych se přihlašovat z mobilu (Android) např.aplikací ConnectBot. Vždy se po pokusu o přihlášení objeví, že pokus o přihlášení pomocí klíčů selhal a vyžaduje heslo. Proto jsem přihlašování ověřil ještě z Linux Mintu a je to to samé.

Napíšu zde svůj postup, možná na něco zapomínám.

1) v mobilu v aplikaci ConnectBot (ev.v Mintu) vytvořím pár klíčů - veřejný a soukromý

ssh-keygen uloží se do adresáře /home/pavel/.ssh (id_rsa a id_rsa.pub)

2) v Raspberry ve skrytém adresáři /storage/.ssh vytvořím soubor authorized_keys

Do tohoto souboru zkopíruju veřejný klíč

3) nastavím práva

chmod 700 /storage/.ssh

chmod 600 /storage/.ssh/authorized_keys

4) pokusím se přihlásit

ssh -v root@10.0.0.13 a dopadne to tak, že vyžaduje heslo

Protokol dávám do přílohy.

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

Odpovědi

20.9.2017 10:15 MP
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Odpovědět | | Sbalit | Link | Blokovat | Admin
chmod 600 /storage/.ssh/authorized_keys

Tohle je blbost. Tohle je potreba mit citelny pro vsechny.
20.9.2017 10:17 MP
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
chmod 700 /storage/.ssh

A tohle je taky blbost. Proc se nejdriv nepodivas, jaka jsou originalni prava v /home/*/.ssh/* nez vymyslet pitomosti?
20.9.2017 10:26 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Tohle je potreba mit citelny pro vsechny.
Nikoli, musí to být čitelné pro uživatele, pod kterým běží sshd, tedy pro roota, a ten může soubor přečíst kdykoli. Nebo-li na tom souboru hlavně nesmí být práva navíc pro zápis někým jiným, než vlastníkem, protože to sshd kontroluje.
20.9.2017 10:20 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Odpovědět | | Sbalit | Link | Blokovat | Admin
V konfiguraci sshd (obvykle /ets/ssh/sshd_config) musíte mít zapnuté přihlašování klíčem (PubkeyAuthentication yes). Název souboru authorized_keys se může lišit (např. může mít na konci dvojku), obvykle bývá výchozí hodnota napsaná v konfiguračním souboru poblíž toho PubkeyAuthentication. Pokud to nepomůže, nastavte vyšší úroveň logování sshd – při vyšších úrovních sshd do logu vypisuje, které soubory zkouší najít a případně co se mu na nich nelíbí.
20.9.2017 11:04 Pavel
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Přílohy:
Ty hodnoty 600 a 700 se uvádějí ve všech návodech.

Ještě přiložím originální soubor sshd_config a nový protokol

Řádek #PubkeyAuthentication yes jsem již dříve odkomentoval.

20.9.2017 11:09 t
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Odpovědět | | Sbalit | Link | Blokovat | Admin
V protokolu se píše:
debug1: Remote: Ignored authorized keys: bad ownership or modes for directory /storage
Jaká jsou opravnění na /storage?
20.9.2017 12:42 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Přesně tak. Tazatel se s tím matlá nějakou velmi nestandardní cestou. Nejpřímočařejší cesta je mít na všech zařízeních uživatele stejného jména a práva eskalovat přes sudo (su, sudo -i) až na cílovém systému a přímým loginem uživatele na roota. Práva na .ssh a authorized_keys jsou sice správně. Ale není moc obvykleé aby domovský adresář roota byl adresář /storage. Jsou pro něj všechny nastavení?
20.9.2017 11:20 NN
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Odpovědět | | Sbalit | Link | Blokovat | Admin
2) v Raspberry ve skrytém adresáři /storage/.ssh vytvořím soubor authorized_keys
Proc? To to nemuzes nechat tam kde to je normalne? Btw. v konfiguraci to potom bude SSH hledat kde?
AuthorizedKeysFile	.ssh/authorized_keys
Nehleda to nahodou v adresari uzivatele? Btw. povolenim root login si koledujes tak akorat o problemy:
PermitRootLogin yes
20.9.2017 13:48 Pavel
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Přílohy:
To umístění skrytého adresáře .ssh už je tam od začátku. Na Raspberry je Openelec (samostatný operační systém) nikoliv např.Kodi nad Windows nebo Linuxem. Výpis ls (oprávnění) z kořenového adresáře i ze storage přikládám.

Myslím si, že adresář storage je domovský adresář uživatele root - nevím.

Ještě jsem zkusil .ssh dát o úroveň výš, ale stále to samé. Znovu přikládám protokol.

20.9.2017 14:08 Pavel
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
Příloha:
Vyřešeno.

Skrytý soubor .ssh zůstává kde byl původně, tedy /storage/.ssh

V souboru /etc/ssh/sshd_config je nutné změnit řádek

StrictModes no (původně bylo yes).

Jako obvykle přikládám protokol kde už jde přihlášení klíči.

Děkuji za Vaše příspěvky.

20.9.2017 15:08 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
To byste ale vy měl vědět, jestli nastavení StrictModes na no je v pořádku.

Předpokládám, že /storage/ je umístění nějaké paměťové karty a zbytek souborového systému je jen pro čtení. Pak je ale divné, aby tenhle adresář byl zároveň domovským adresářem roota…
20.9.2017 15:28 Pavel
Rozbalit Rozbalit vše Re: Připojení přes SSH pomocí authorized keys
V Raspberry používám zavaděč berryboot, na paměťové kartě není oproti původní konfiguraci systém, který jsem dal na flashdisk. Karta ale v Raspberry být musí, stačí např.64 MB. Na flashdisku mám jen Openelec, ale může tam být několik systémů. Vyzkoušel jsem několik, ale Raspberry používám jen jako MMC se dvěma DVB-T tunery.

Pokud jsem instaloval Openelec na stolní PC, jsou potřeba dva linuxové oddíly. V prvním je soubor KERNEL a SYSTEM a ve druhém jsou adresáře ty samé jako ve storage v Raspberry.

Nikdy jsem klíče neřešil (přihlášoval jsem se vždy přes heslo sshpass), až jsem na mobilu potřeboval ConnectBot který umí jen klíče a nepřišel jsem na to, jak by tam dal heslo (jako např.JuiceSSH).

Potřeboval jsem, aby automaticky po přihlášení se spustil příkaz nebo script - nechci to ťukat ručně v mobilu. ConnectBot to umí a je zdarma.

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.