Dodanie klucza publicznego do~/.ssh / autoryzowane klucze nie logują mnie automatycznie

Dodałem publiczny klucz ssh do pliku authorized_keys. ssh localhost Należy zalogować się bez pytania o hasło.

Zrobiłem to i próbowałem wpisać ssh localhost, ale nadal prosi mnie o wpisanie hasła. Czy jest jakieś inne ustawienie, które muszę przejść, aby to działało?

Wykonałem instrukcję zmiany uprawnień:

Poniżej jest wynik jeśli zrobię ssh -v localhost

debug1: Reading configuration data /home/john/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /home/john/.ssh/identity type 1
debug1: identity file /home/john/.ssh/id_rsa type -1
debug1: identity file /home/john/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.7p1 Debian-8ubuntu3
debug1: match: OpenSSH_4.7p1 Debian-8ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu3
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 'localhost' is known and matches the RSA host key.
debug1: Found key in /home/john/.ssh/known_hosts:12
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/john/.ssh/identity
debug1: Server accepts key: pkalg ssh-rsa blen 149
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>

Następnie pyta o hasło po powyższym logu. Dlaczego mnie nie zaloguje bez hasło?

Author: Eric Leschinski, 2011-06-16

26 answers

Musisz zweryfikować uprawnienia pliku authorized_keys i folderu / folderów nadrzędnych, w których się znajduje.

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

Aby uzyskać więcej informacji zobacz ta strona .

Może być również konieczna zmiana / Weryfikacja uprawnień katalogu domowego, aby usunąć dostęp do zapisu dla grupy i innych.

chmod go-w ~
 905
Author: Teddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-14 16:43:18

SELinux może również spowodować, że authorized_keys nie będzie działać. Szczególnie dla korzeni w CentOS 6 i 7. Nie trzeba go jednak wyłączać. Po zweryfikowaniu poprawności uprawnień możesz to naprawić w następujący sposób:

chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
restorecon -R -v /root/.ssh
 130
Author: Cole Stanfield,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-03 19:42:10

Ustawienie SSH authorized_keys wydaje się być proste, ale ukrywa pewne pułapki, które próbuję wymyślić

-- Serwer --

W / etc / ssh / sshd_config ustaw passwordAuthentication yes, aby serwer tymczasowo akceptował uwierzytelnianie hasłem

-- klient --

Rozważ cygwin jako emulację Linuksa i zainstaluj i uruchom openssh

1. generowanie kluczy prywatnych i publicznych (po stronie klienta) # ssh-keygen

Tutaj wciskając po prostu ENTER dostajesz DEFAULT 2 pliki " id_rsa" i " id_rsa.pub" in ~/.ssh / ale jeśli podasz name_for_the_key wygenerowane pliki zostaną zapisane w twoim pwd

2. umieść your_key.pub to target machine ssh-copy-id user_name@host_name

Jeśli nie utworzyłeś domyślnego klucza, jest to pierwszy krok do błędu ... należy użyć

ssh-copy-id -i path/to/key_name.pub user_name@host_name

3. logowanie ssh user_name@host_name będzie działać tylko dla default id_rsa więc tutaj jest 2nd trap for you need to ssh -i path/to/key_name user@host

(użyj ssh-v ... opcja, aby zobaczyć, co się dzieje)

Jeśli serwer nadal pyta o hasło to podałeś smth. aby wpisać hasło: Po utworzeniu kluczy (więc jest to normalne)

Jeśli ssh nie nasłuchuje domyślny port 22 musi użyć ssh -p port_nr

-- Serwer - - - - - -

4. modify / etc / ssh / sshd_config to have

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

(uncoment if case)

To mówi ssh aby zaakceptował authorized_keys i poszukał w katalogu domowym użytkownika wpisanego Stinga .plik SSH / authorized_keys

5 set permissions in target machine

chmod 755 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Wyłącz również pass auth

passwordAuthentication no

Aby zamknąć bramę do wszystkich SSH root / admin/....@ your_domain

6 upewnij się, że własność i własność grupowa wszystkich nie-rootowych katalogów domowych są odpowiednie.

chown -R ~ usernamehere
chgrp -R ~/.ssh/ user 

===============================================

7. rozważ doskonały http://www.fail2ban.org

8. extra ssh TUNNEL Aby uzyskać dostęp do MySQL (bind = 127.0.0.1) sever

 85
Author: bortunac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:35

Upewnij się również, że twój katalog domowy nie jest zapisywalny przez innych

chmod g-w,o-w /home/USERNAME

Odpowiedź jest skradziona z tutaj

 32
Author: Stephan Hoyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:17

Wypisanie klucza publicznego w .ssh / authorized_keys jest konieczne, ale nie wystarczające, aby SSHD (serwer) go zaakceptował. Jeśli twój klucz prywatny jest chroniony hasłem, musisz za każdym razem podawać hasło ssh (klient). Możesz też użyć ssh-agent lub odpowiednika gnome.

Twój ślad aktualizacji jest zgodny z kluczem prywatnym chronionym hasłem. Zobacz ssh-agent lub ssh-keygen-p.

 7
Author: fche,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-16 19:37:52

Uważaj, że SELinux może również wywołać ten błąd, nawet jeśli wszystkie uprawnienia wydają się być w porządku. Wyłączenie to zrobił sztuczkę dla mnie(Wstaw zwykłe zastrzeżenia o wyłączeniu go).

 7
Author: Nim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-18 09:39:49

Desperaci mogą również upewnić się, że nie mają dodatkowych nowych linii w pliku authorized_keys ze względu na skopiowanie id_rsa.pub SMS z zagubionego terminala.

 7
Author: Alexander Taylor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-30 03:39:08

Użytkownik to Twoja nazwa użytkownika

mkdir -p /home/user/.ssh
ssh-keygen -t rsa
touch /home/user/.ssh/authorized_keys
touch /home/user/.ssh/known_hosts
chown -R user:user /home/user/.ssh
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/id*
chmod 644 /home/user/.ssh/id*.pub
chmod 644 /home/user/.ssh/authorized_keys
chmod 644 /home/user/.ssh/known_hosts
 5
Author: wcc526,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-14 11:55:47

W końcu udało mi się upewnić, że właściciel/Grupa to nie root, ale użytkownik:

chown -R ~/.ssh/ user
chgrp -R ~/.ssh/ user 
 4
Author: Ulrich Behrendt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-08 09:37:55

Spróbuj "SSH-add", które zadziałało dla mnie.

 3
Author: h99,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-05 00:42:39

Polecenie zapisu:

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

Po tym, upewnij się, że Twój dir jest taki:

drwx------ 2 lab lab 4.0K Mar 13 08:33 .
drwx------ 8 lab lab 4.0K Mar 13 08:07 ..
-rw------- 1 lab lab  436 Mar 13 08:33 authorized_keys
-rw------- 1 lab lab 1.7K Mar 13 07:35 id_rsa
-rw-r--r-- 1 lab lab  413 Mar 13 07:35 id_rsa.pub
 3
Author: Exsonic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-13 08:42:19

Kolejna wskazówka do zapamiętania. Od wersji 7.0 OpenSSH domyślnie wyłącza DSS/DSA klucze ssh ze względu na ich dziedziczenie. Więc jeśli masz OpenSSH v7.0+, upewnij się, że twój klucz nie jest ssh-dss.

Jeśli utkniesz z kluczami DSA, możesz ponownie włączyć obsługę lokalnie przez Aktualizacja plików sshd_config i ~/.ssh/config za pomocą linii: PubkeyAcceptedKeyTypes=+ssh-dss

 3
Author: user2683246,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-29 12:04:12

Upewnij się, że użytkownik docelowy ma ustawione hasło. Uruchom passwd username, aby ustawić pierwszy. Było to wymagane dla mnie, nawet jeśli hasło logowanie SSH było wyłączone.

 2
Author: George,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-15 06:17:55

Kolejna sprawa, na którą musisz się zająć. Jeśli wygenerowany plik nie jest domyślny id_rsa i id_rsa.pub

Musisz tworzyć .plik SSH / config i określ ręcznie, który plik id będzie używany z połączeniem.

Przykład jest tutaj:

host remote_host_name
hostname 172.xx.xx.xx
user my_user
IdentityFile /home/my_user/.ssh/my_user_custom.pub
 2
Author: Kunthar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-02 09:41:59

W moim przypadku musiałem umieścić plik authorized_keys w .openssh.

Ta lokalizacja jest określona w {[2] } w opcji AuthorizedKeysFile %h/.ssh/authorized_keys.

 2
Author: Sean Bannister,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-22 18:00:53

Wydałem sudo chmod 700 ~/.ssh i chmod 600 ~/.ssh/authorized_keys i chmod go-w $HOME $HOME/.ssh z góry i to naprawiło mój problem na pudełku CentOS7, na którym pomieszałem uprawnienia podczas próby uruchomienia akcji samby. Dzięki

 1
Author: GJSmith3rd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-01 00:53:12

Wygląda na problem z pozwoleniem. Zwykle dzieje się tak, gdy uprawnienia jakiegoś pliku / katalogu nie są prawidłowo ustawione. W większości przypadków są to ~/.ssh i ~/.ssh/*. W moim przypadku są /home/xxx.

Możesz zmienić poziom dziennika sshd modyfikując /etc/ssh/sshd_config(wyszukaj LogLevel, ustaw go na DEBUG), a następnie sprawdź wyjście w /var/log/auth.log, aby zobaczyć, co dokładnie się stało.

 1
Author: Joey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-08 01:09:59

To rozwiązuje mój problem

Ssh - agent bash

Ssh-dodaj

 1
Author: Julian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-21 14:57:57

Upewnij się, że skopiowałeś cały klucz publiczny do authorized_keys; prefiks ssh rsa jest niezbędny do działania klucza.

 1
Author: Willem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-22 11:36:26

Musisz zweryfikować właściwości plików. aby przypisać wymaganą właściwość użyj:

$ chmod 600 ~/.ssh/sshKey
$ chmod 644 ~/.ssh/sshKey.pub
 1
Author: Manna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-03 23:29:59

Upewnij się, że konfiguracja sshd ma -;

PermitRootLogin without-password

Ustaw jak wyżej, a następnie uruchom ponownie sshd (/etc / init.d / SSHD restart)

Wyloguj się i spróbuj zalogować się ponownie!

Default I believe is -;

PermitRootLogin no
 0
Author: Edd Stance,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-03 09:59:15

W moim przypadku jest to spowodowane tym, że grupa użytkownika nie jest ustawiona w AllowGroups pliku konfiguracyjnego/etc/ssh / sshd_config. Po dodaniu wszystko działa dobrze.

 0
Author: pppk520,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-26 06:39:19

Moim problemem był zmodyfikowany AuthorizedKeysFile, gdy automatyzacja wypełniania /etc/ssh / authorized_keys nie została jeszcze uruchomiona.

$sudo grep AuthorizedKeysFile /etc/ssh/sshd_config
#AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile  /etc/ssh/authorized_keys/%u
 0
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-28 19:07:21

Mam katalog domowy w niestandardowej lokalizacji i w sshd logach mam taką linię:

Could not open authorized keys '/data/home/user1/.ssh/authorized_keys': Permission denied

Nawet jeśli wszystkie uprawnienia były w porządku (zobacz inne odpowiedzi).

Znalazłem rozwiązanie tutaj: http://arstechnica.com/civis/viewtopic.php?p=25813191&sid=0876f069ec2aa5fdcd691a2e2e7242c2#p25813191

W moim konkretnym przypadku:

  • Dodano nowy wiersz w /etc/selinux/targeted/contexts/files/file_contexts.homedirs:

    • To jest oryginalna linia do zwykłego domu katalogi:

      /home/[^/]*/\.ssh(/.*)? unconfined_u:object_r:ssh_home_t:s0

    • To moja nowa linia:

      /data/home/[^/]*/\.ssh(/.*)? unconfined_u:object_r:ssh_home_t:s0

  • Następnie a restorecon -r /data/ I a sshd restart

 0
Author: alexandrul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-25 09:00:05

Wystarczy spojrzeć na / var / log / auth.log na serwerze . Ustawienie dodatkowej szczegółowości za pomocą - vv Po stronie klienta nie pomoże, ponieważ serwer prawdopodobnie nie zaoferuje zbyt wielu informacji potencjalnemu atakującemu.

 0
Author: Edward van Kuik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 16:19:33

Miałem ten problem i żadna z innych odpowiedzi go nie rozwiązała, chociaż oczywiście inne odpowiedzi poprawne.

W moim przypadku okazało się, że sam katalog /root (nie np. /root/.ssh) miał złe uprawnienia. Potrzebowałem:

chown root.root /root
chmod 700 /root

Oczywiście te uprawnienia powinny być czymś takim (Może chmod 770) niezależnie od tego. Jednak w szczególności uniemożliwiło to działanie sshd, mimo że zarówno /root/.ssh, jak i /root/.ssh/authorized_keys miały poprawne uprawnienia i właścicieli.

 0
Author: Jason Cohen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-02 15:24:11