GNU/Linux >> Znalost Linux >  >> Linux

Opravit Permission denied (publicky) Chyba SSH v Linuxu

Tento rychlý tutoriál vám ukáže, jak opravit chybu ssh „sign_and_send_pubkey:podepisování se nezdařilo:agent odmítl operaci Permission denied (publickey)“ v Linuxu.

Pokud se pokoušíte připojit ke vzdálenému serveru přes SSH, může dojít k chybě oprávnění odepřeno. Tato chyba může nastat z několika důvodů. A oprava tohoto problému závisí na přesném důvodu chyby.

V mém případě jsem měl veřejné a soukromé klíče uložené na ploše Ubuntu 16.04. Po vydání Ubuntu 18.04 jsem se rozhodl upgradovat na tuto novější verzi. Dávám přednost čerstvé instalaci před aktualizacemi distribuce.

Udělal jsem tedy zálohu hlavních složek mého domovského adresáře včetně složky .ssh, která měla veřejný a soukromý klíč na externím disku.

Po instalaci jsem povolil SSH na Ubuntu 18.04 a obnovil vše včetně klíčů SSH.

Když jsem se teď pokusil připojit ke vzdálenému serveru pomocí ssh, myslel jsem si, že to bude fungovat okamžitě, protože jsem měl stejný veřejný a soukromý klíč.

Ale nefungovalo to. SSH mi zobrazilo tuto chybu:

sign_and_send_pubkey:podepisování se nezdařilo:agent odmítl [email protected]:Oprávnění odepřeno (publicky). 

Pokud jste v podobné situaci, kdy jste zkopírovali své klíče SSH z jiného zdroje, dovolte mi, abych vám ukázal, jak tuto chybu SSH opravit.

Správná oprávnění k souboru ve složce ~/.ssh a jejím obsahu

Zpravidla můžete nastavit následující oprávnění pro adresář ssh a jeho soubory (soukromé klíče, veřejné klíče, známí_hostitelé, konfigurační soubor ssh atd.)

Prvek Povolení
adresář .ssh 700 ((drwx------)
veřejné klíče 644 (-rw-r--r--)
soukromé klíče 600 (-rw-------)
autorizované_klíče 600 (-rw-------)
známí_hostitelé 600 (-rw-------)
config 600 (-rw-------)

Možná nemáte všechny soubory, ale musíte zde mít veřejný a soukromý klíč.

Nyní se podívejme, jak změnit oprávnění k souborům u klíčů ssh a dalších souborů.

Oprava chyby Permission denied (publickey)

Problém tedy spočívá v oprávněních k souboru. Vidíte, když jsem zkopíroval soubory, USB bylo ve formátu souborů FAT společnosti Microsoft. Tento soubor nepodporuje oprávnění souborů UNIX/Linux.

A proto byla oprávnění ke zkopírovaným ssh klíčům změněna na 777.

Pro SSH jsou oprávnění k souboru příliš otevřená. Jednoduše není povoleno mít 777 oprávnění k veřejným nebo soukromým klíčům. A to je důvod, proč zde SSH odmítlo připojení.

ls -l .ssh-rwxrwxrwx 1 abhishek abhishek 1766 12. listopadu 2017 id_rsa-rwxrwxrwx 1 abhishek abhishek 398 2. listopadu 12 2017 id_rsh2017 id_rsa.pub11 známý 2. listopad 2017 id-rwishx.pub19

Soukromý klíč by měl mít oprávnění ke čtení a zápisu pouze pro uživatele a žádná další oprávnění pro skupinu a ostatní.

Oprávnění byste měli změnit pomocí příkazu chmod:

chmod 600 ~/.ssh/id_rsa 

Podobně by veřejný klíč neměl mít oprávnění k zápisu a spouštění pro skupinu a další.

chmod 644 ~/.ssh/id_rsa.pub 

Nyní, když jste zadali správná oprávnění, můžete se znovu připojit k ssh. V tuto chvíli bude k odemknutí klíčů vyžadováno heslo vašeho administrátora. Zadejte své heslo správce a měli byste být připraveni.

To mě také naučilo, že kopírování a vkládání souborů je špatný nápad a měla by být provedena řádná záloha, jinak všechny soubory budou mít nebezpečná oprávnění 777. Musel jsem rekurzivně změnit oprávnění k souborům v celém domovském adresáři a věřte mi, nebyla to zrovna hezká věc.

Jak jsem již řekl, tato chyba může mít různé důvody. U problému souvisejícího s oprávněním k otevření souboru by vám tato oprava měla pomoci opravit chybu Povolení odepřeno (publickey) pomocí SSH. Pokud máte zájem, můžete si přečíst více o základech SSH.

Dejte mi vědět v sekci komentářů, zda oprava fungovala pro vás nebo ne. Navrhněte také svůj názor na kopírování ssh klíčů na jiných počítačích.


Linux
  1. Jak opravit chybu Rust „linker ‚cc‘ nenalezen“ v systému Linux

  2. Jak opravit chybu Příkaz nenalezen v Linuxu

  3. Jak opravit chybu Cron Authentication Failure v Linuxu?

  1. pip freeze vrací chybu:Oprávnění odepřeno:hg

  2. Oprava ::Chyba připojení Linux SSH byla odmítnuta

  3. Jak nastavit klíče SSH pro přihlášení k ssh „bez hesla“ v systému Linux

  1. Jak interpretovat a opravit chybu vstupu/výstupu v Linuxu?

  2. oprávnění odepřeno pro soubor autorizovaný_klíč

  3. mount error(13):Oprávnění odepřeno se sdílením systému Windows