it-swarm.dev

heslo bez hesla nefunguje

Pokusil jsem se také nastavit heslo bez ssh b/w AB a BA. Na obou počítačích byl vygenerován veřejný a soukromý klíč pomocí ssh-keygen -trsa. Pro zkopírování veřejných klíčů z A do B a B do A byl použit obslužný program ssh-copy-id.

Ssh bez hesla pracuje od A do B ale not od B do A. Zkontroloval jsem oprávnění složky ~/ssh/a zdá se, že je normální.

Oprávnění složky A's .ssh:

-rw-------  1 root root 13530 2011-07-26 23:00 known_hosts
-rw-------  1 root root   403 2011-07-27 00:35 id_rsa.pub
-rw-------  1 root root  1675 2011-07-27 00:35 id_rsa
-rw-------  1 root root   799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root  4096 2011-07-27 00:37 ..
drwx------  2 root root  4096 2011-07-27 00:38 .

Oprávnění složky B's .ssh:

-rw------- 1 root root  884 2011-07-07 13:15 known_hosts
-rw-r--r-- 1 root root  396 2011-07-27 00:15 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa
-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keys
drwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..
drwx------ 2 root root 4096 2011-07-27 00:15 .

A je Ubuntu 10.04 (OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25. 3. 2009) B je debian stroj (OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19. října 2007)

Od A:

#ssh B

funguje dobře.

Od B:

#ssh -vvv A 
...
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password: 

Což v podstatě znamená, že se neprovádí ověření pomocí souboru /root/id_rsa. Na obou strojích jsem také spustil příkaz ssh-add.

Ověřovací část souboru /etc/ssh/sshd_config Je

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files

Docházejí mi nápady. Jakákoli pomoc by byla oceněna.

35
Cuurious

Ujistěte se, že jste postupovali podle následujícího postupu:

Na počítači A

otevřete terminál a zadejte následující příkazy:

[email protected]:~# id

Jen abychom se ujistili, že jsme root.

Pokud výše uvedený příkaz vydá něco jako níže, root jsme přepnuli na root pomocí příkazu su

uid=0(root) gid=0(root) groups=0(root)

1) Vytvořte klíče.

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:7d:30:7d:67:db:58:51:42:75:78:9c:06:e1:0c:8d [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|          ooo+==B|
|         . E=.o+B|
|        . . .+.*o|
|       . . .  ...|
|        S        |
|                 |
|                 |
|                 |
|                 |
+-----------------+

Nepoužil jsem žádné přístupové fráze. Pokud ji potřebujete, můžete ji použít.

2) Zkopírujte veřejný klíč do souboru .ssh/authorized_keys Počítače B

[email protected]:~# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[email protected]'s password: 

Nyní se pokuste přihlásit do počítače pomocí ssh '[email protected]' A zkontrolujte:

~/.ssh/authorized_keys

abychom se ujistili, že jsme nepřidali další klíče, které jste neočekávali.

Nahraďte mylap názvem hostitele nebo ip počítače, ke kterému se chcete přihlásit (tj. Stroj B)

3) Přihlášení k B bez hesla

[email protected]:~# ssh [email protected]
Warning: Permanently added 'mylap,192.168.1.200' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul 27 15:23:58 2011 from streaming-desktop.local
[email protected]:~$

Na stroji B

4) Vytvořte klíče pro přihlášení zpět do počítače A

[email protected]:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:9f:e7:81:ed:02:f9:fd:ad:ef:08:c6:4e:19:76:b1 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|          o   .  |
|         . + + o |
|        S o * E  |
|           = O . |
|            O +  |
|           + o o.|
|            . o+=|
+-----------------+

5) Zkopírujte veřejný klíč do souboru .ssh/authorized_keys Počítače A

[email protected]:~# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
[email protected]'s password: 

Nyní se pokuste přihlásit do počítače pomocí ssh '[email protected]' A zkontrolujte:

.ssh/authorized_keys

abychom se ujistili, že jsme nepřidali další klíče, které jste neočekávali.

6) Přihlaste se k A bez hesla

ssh [email protected]
Warning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64)

 * Documentation:  https://help.ubuntu.com/


Last login: Tue Jul 26 18:52:55 2011 from 192.168.1.116

Pokud jste schopni tyto kroky dokončit, jste hotovi. Nyní máte dva počítače s povoleným přihlašováním pomocí ssh-key (public-key).

24
aneeshep

Po nastavení ssh bez hesla jsem byl stále požádán o své uživatelské heslo. Při pohledu na /var/log/auth.log na vzdáleném počítači poukázal na problém:

sshd[4215]: Authentication refused: bad ownership or modes for directory /home/<user>

Ujistěte se tedy, že máte pravdu:

chmod o-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Zatímco ostatním uživatelům zakazujete psát přes vaše .sshsložka je zřejmá, protože stejné požadavky na domovskou složku byly složitější.

Zkontrolujte také /etc/ssh/ssd_config, aby se zajistilo, že možnosti RSAAuthentication a PubkeyAuthentication nejsou zakázány. Výchozí hodnota je yes, takže by to neměl být problém.

44
Maxime R.

Pravděpodobně problém s vyšší úrovní oprávnění. Musíte odebrat oprávnění pro zápis ze skupiny a dalších do vašeho domovského adresáře a adresáře .ssh. Chcete-li tato oprávnění opravit, spusťte chmod 755 ~ ~/.ssh nebo chmod go-w ~ ~/.ssh.

Pokud problémy přetrvávají, vydejte do protokolu následující grep:

Sudo egrep -i 'ssh.*LOCAL_USER_NAME' /var/log/secure

(nahradit LOCAL_USER_NAME s vaším místním uživatelským jménem ...)

To by vám mělo snad více říci o vašem problému za předpokladu, že informace o autentizaci sshd jsou protokolovány do zabezpečeného protokolu, což by mělo být ve výchozím nastavení. Pokud vidíte chyby, které vypadají takto:

DATUM HOSTNAME sshd [1317]: Ověření odmítnuto: špatné vlastnictví nebo režimy pro adresář/cesta/do/některé/adresář

Je to problém popsaný výše a je třeba najít příslušný adresář a odstranit oprávnění ke zápisu ze skupiny a dalších.

Pokud jde o důvod, proč byste museli omezit oprávnění pro zápis do svého domovského adresáře (i když jsou oprávnění již ve vašem adresáři .ssh a následných adresářích omezena), umožní ostatním uživatelům přejmenovat váš adresář .ssh a vytvořit nový, ačkoli by bylo nepoužitelné, jak je (kvůli špatným oprávněním), oprava pro většinu uživatelů by pravděpodobně byla změna oprávnění, spíše než kontrola obsahu adresáře ...

[~ # ~] tldnr [~ # ~] : Povolení přístupu pro zápis do skupiny a/nebo jiného do vašeho domovského adresáře způsobí přihlášení ssh force heslem.

14
KTBiz

používáte root účet v každém počítači? Na Ubuntu obvykle používáte uživatelský účet a podle potřeby mu dáváte oprávnění sudo.

Pokud vaše použití uživatele bez oprávnění root Sudo chown $USER -R ~/.ssh Může vyřešit váš problém

Další věci ke kontrole:

dvakrát zkontrolujte, zda je B id_rsa.pub B v authorized_keys.

zkontrolujte, zda A obsahuje /etc/ssh/sshd_config

PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
2
Smithamax