it-swarm-eu.dev

Pokoušíme se provést autentizaci pomocí ssh se soubory klíčů: server náš klíč odmítl

Snažím se nastavit autentizaci ssh pomocí klíčových souborů namísto uživatelského jména/hesla. Klient je Windows box s PuTTY a server je Ubuntu 12.04 LTS server.

Stáhl jsem puttygen.exe a nechal jej vygenerovat pár klíčů. V /etc/ssh/sshd_config Mám tento řádek:

AuthorizedKeysFile %h/.ssh/authorized_keys

a v souboru veřejného klíče mého klienta to říká:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "[email protected]"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
[email protected]
---- END SSH2 PUBLIC KEY ----

Zkopíroval jsem část z „ssh-rsa AAA“ do „[email protected]“ a vložil jsem ji do souboru ~/.ssh/authorized_keys na mém serveru (v mé vlastní domovské složce). V PuTTY v části Připojení> SSH> Auth jsem zadal cestu k soukromému klíči, který vygeneroval na mém klientovi, a uložil nastavení relace.

Restartoval jsem ssh server pomocí

Sudo service ssh restart

Nyní, když načtu profil v PuTTY (ověřil jsem, že soukromý klíč je stále v připojení> SSH> Auth a že cesta je správná) a spustím profil, říká

Server refused our key

Zkusil jsem veřejný klíč vložit do souboru pod adresář ./ssh/authorized_keys/ ale to nepomohlo, takže jsem použil ./ssh/authorized_keys jako soubor, vložte do něj klíč. Také jsem se pokusil vygenerovat pár soukromých/veřejných klíčů na serveru a veřejný klíč vložit do ./ssh/authorized_files a načítám soukromou v PuTTY na mém klientovi. Ani restartování serveru nepomohlo.

Zjistil jsem, že chyba může být vyřešena umístěním klíče na místo mimo domovskou složku uživatele, ale to je užitečné pouze v případě, že je domovská složka šifrovaná, což není tato.

Také se pokusil vygenerovat 4096bitový klíč, možná 1024 bylo příliš krátké.

Jak to dokážu? Dík!

UPRAVIT:

OK, /var/log/auth.log řekl:

sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh

Google mi řekne ~/.ssh/ by mělo být 700 a ~/.ssh/authorized_keys by mělo být 600, tak jsem to udělal. Nyní /var/log/auth.log říká:

sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
56
Forkbeard

Dobře, je to opraveno, ale nechápu, jak se to liší od toho, co jsem už vyzkoušel.

To, co jsem udělal:

  • vygenerujte pár klíčů s puttygen.exe (délka: 1024 bitů)
  • načtěte soukromý klíč do profilu PuTTY
  • zadejte veřejný klíč do ~/.ssh/authorized_keysna jednom řádk (ssh-rsa {your_public_key} s ne více než jednou mezerou mezi ssh-rsa a váš klíč)
  • chmod 700 ~/.ssh
  • chmod 600 ~/.ssh/authorized_keys
  • chown $USER:$USER ~/.ssh -R
  • změna /etc/ssh/sshd_config takže obsahuje AuthorizedKeysFile %h/.ssh/authorized_keys
  • Sudo service ssh restart

Pro řešení potíží udělejte # tail -f /var/log/auth.log.

Díky za vaši pomoc!

104
Forkbeard

Právě jsem narazil na tento problém. Přestože je config nastaven správně, jak již bylo uvedeno v tomto vlákně (oprávnění k autorizovaným klíčům atd.), Ukázalo se, že jsem veřejný klíč měl ve špatném formátu. Bylo to ve formě:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "imported-openssh-key"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDUoj0N3vuLpeviGvZTasGQ...
... lPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT
---- END SSH2 PUBLIC KEY ----

Což nefungovalo. Ale fungovalo to ve formě:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU.....j0N3vuLpeviGvZTasGQa1rcJiPXQMW7v3uurb+n94B9MQaaWR0odsg5DJQL92TNenOda5BO1nd08y6+sdLQmHXExTz6X8FzgoVsAkEl3RscxcxHUksiKA9JfTo38vQvG/bPxIHMCuSumCQVA1laf3rO/uOrkcB7iMWhaoi1/z6AbFtPzeh7xjGfInMWwtBI0CsHSRF73VWIxT26w0P+KjafCjSn/7vDO1bT8QHujSQelU/GqaVEvbbvPl1a7POVjKgHLNekolwRKfNeVEewcnmZaoqfHgOKlPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT [email protected]
25
kuraara

problém je v tom, že Windows používají jiný nový řádek než linux, takže při kopírování klíče z Windows do Linuxu existuje \ n na konci řádku, který na linuxu v editoru nevidíte.

Pokud sledujete /var/log/auth.log a pokusíte se přihlásit, chyba je následující:

sshd: error: key_read: uudecode AAAAB3N [....] ==\n

Pokud změníte klíč v systému Windows tak, aby byl v jednom řádku bez nového řádku na konci a zkopírujte jej do linuxu, měl by to fungovat ( trik pro mě).

9
Mischa

Musel jsem změnit oprávnění do domovského adresáře

chmod 700 ~
8
Michal Zmuda

Musel jsem změnit oprávnění k adresáři ~/.ssh ze 770 na 700 a oprávnění k souborům ~/.ssh/autorizované_keys ze 660 na 600.

Z nějakého důvodu odstranění tohoto oprávnění pro mě tento problém vyřešilo.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
6
dopple

The ~/.ssh/authorized_keys soubor vyžaduje, aby klíče byly všechny na jednom řádku. Pokud jste ji přidali na více řádků jako ve výše uvedené vložce, zkuste se připojit k řádkům.

5
Paul

Tady je to, co pro mě fungovalo:

Po vygenerování klíčů v puttygen se ujistěte, že zkopírujete a vložíte informace z horního pole a přejdete do svého souboru autorizovaných klíčů. Pokud uložíte veřejný klíč do klientského počítače a poté jej otevřete, text se liší od textu v horní části obrazovky puttygen. Znovu se ujistěte, že zkopírujete a vložíte text z horní části obrazovky puttygen (po vytvoření klíčů) do vašeho souboru autorizovaných_keys, který by měl být umístěn v ~/.ssh.

2
zach

pro mě problém byl, že jsem vytvořil ~/.ssh/authorized_keys pomocí root, takže root vlastní. Musel jsem chown sshuser:sshuser ~/.ssh/authorized_keys pak to začalo fungovat

1
PeanutPower

Také jsem čelil této chybě a vyřešil jsem ji změnou oprávnění autorizovaného souboru_keys na 600.

chmod 600 ~/.ssh/authorized_keys
1
Kaleem

Někdy to může být problém spojený s veřejným klíčem na jedné lince, zdá se, že tento přístup jej řeší

echo 'the content of the public key' > /root/.ssh/authorized_keys
1
dav

Častou chybou je, že lidé používají textový editor (jako Vim) a zkopírují zkopírovaný text před aktivací „vložení“ (před vložením stiskněte + i ve Vimu)

1
hakabe

Kromě všech výše uvedených odpovědí nezapomeňte správně zkopírovat a vložit klíč z puttygen!

Pokud jednoduše kliknete na většinu řetězce klíčů a vyberete jej, nemusíte získat celý řetězec, protože textové pole rozdělí řádky na některé znaky, například +, takže nevyberete text po + znak (který nevidíte, protože textové pole je příliš malé). Nezapomeňte vybrat celý řetězec ručně z ssh-rsa na samý konec textového pole.

1
Mark Lakata

k ladění otevřeného ssh lze použít:

Sudo `which sshd` -p 2020 -Dd

spustí sshd na jiném portu 2020. spustí sshd jako aktuální program, takže výstup přejde na obrazovku. pokud je uzavřen, je uzavřen.

zkuste se připojit.

vysvětlení:

  • `který sshd` - vyhledá adresu sshd, zkuste spustit který sshd uvidí, co vytiskne. při použití zpětných nabídek provede a vrátí výsledek na místo.
  • -p 2020 - určuje port
  • -D - přihlášení do souboru
  • -d - přihlásit se na obrazovku

https://www.attachmate.com/documentation/rsit-unix-802/rsit-unix-guide/data/sshd_options_ap.htm

0
Shimon Doodkin

Když jsem se přihlásil jako root, vytvářel jsem soubory .ssh a autorizované_keys, což dávalo nesprávná oprávnění. Také umístil všechny soubory do kořenového adresáře. Věřím, že je to kořen mnoha problémů s „serverem odmítnutým klíčem“.

Změna vlastnictví těchto souborů na uživatele, kterého si přejete, nebude osvědčeným postupem, a tak jsem odešel ze svých kroků a ujistil jsem se, že jsem přihlášen jako uživatel, s nímž jsem chtěl použít SSH, a znovu jsem vytvořil .ssh a autorizovaný klíč. Chyba.

Pokyny k připojení serveru Win7 k serveru Xubuntu 15.04: Jak vytvořit klíče SSH bez připojení k VPS pomocí PuTTY

0
Leo F

Ve skutečnosti jsem změnil oprávnění authorized_keys Na 644 A problém byl vyřešen.

chmod 644 ~/.ssh/authorized_keys
0
Peter Liang