EDYCJA: Umieszczenie dokładnie tego, co zostało zrobione.
Potrzebuję SSH do localhost
bez hasła, zwykły sposób robienia tego (z kluczami publicznymi) nie działa.
user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
user@PC:~$ ls .ssh/
id_rsa id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh-agent $SHELL
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE
user@PC:~$ ssh-copy-id -i localhost
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh localhost echo 'testing'
user@localhost's password:
user@PC:~$
Jak widać w ostatnim poleceniu, wciąż prosi o hasło !!! Jak mogę to naprawić? Ubuntu-10.04, OpenSSH_5.3p1
EDYCJA 2:
Dodanie informacji o sshd
user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes
#KerberosAuthentication no
#GSSAPIAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
EDYCJA 3: Wynik reklamy z $ ssh -vv localhost
$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password:
EDYCJA 4:
Sprawdzam tylko, czy pliki są takie same i md5sum się zgadza
RSAAuthentication yes
iPubkeyAuthentication yes
w pliku / etc / ssh / sshd_config? Co pokazuje ssh -vv localhost? Właśnie próbowałem tego na pudełku 10.04 i nie miałem problemu ..Odpowiedzi:
Przede wszystkim powinieneś zrozumieć, co robisz:
Kopiujesz klucz publiczny
.ssh/id_rsa.pub
przez ssh, do tego samego hosta (taki jest localhost, ten sam host). Jeśli zastąpiszlocalhost
go innym hostem, miałoby to większy sens (ale jeśli próbujesz tego zrobić, aby dowiedzieć się, jak to zrobić, to jest w porządku).Gdy masz już kopię swojego klucza publicznego na zdalnym hoście (lub tym samym, w którym się znajdujesz), musisz upewnić się, że używasz go do uwierzytelnienia, na swoim hoście, dzwoniąc
ssh-agent
/ssh-add
:Następnie, jeśli podałeś hasło, zostaniesz poproszony o ich wprowadzenie
ssh-add
. Jeśli wygenerowałeś klucz prywatny bez hasła, to wszystko.źródło
ssh-add
, edytuj swoje pytanie i umieść wszystko, co zrobiłeś. Im więcej informacji podasz, tym lepsza i szybsza odpowiedź.eval
”?Odkryłem problem.
Uruchamianie serwera z debugowaniem:
Odkryłem, że nie można odczytać klucza auth_key
Naprawione.
źródło
Wykonaj następujące kroki
Użyj domyślnego pliku i pustego hasła (po prostu naciśnij enter w kolejnych 2 krokach)
Skopiuj zawartość ~ / .ssh / id_rsa.pub do ~ / .ssh / Author_keys
Upewnij się, że są to uprawnienia
Upewnij się również, że uprawnienia do katalogu .ssh to. To jest również ważne
źródło
authorized_keys
na 0600 rozwiązuje problem, podczas gdy pozwolenie na.ssh
katalog nie ma wpływu na sshing localhostUprość konfigurację serwera
Myślę, że może być konieczne wyłączenie uwierzytelniania opartego na haśle. To jest sshd_config, którego używam
Spróbuj najpierw czegoś minimalnego, a następnie dodaj go, ponieważ potrzebujesz dodatkowych możliwości.
Aktualizacja:
Sprawdź dzienniki serwera
Z twojego EDIT3 widzę, że uwierzytelnienie klucza publicznego kończy się niepowodzeniem, zanim klient podejmie próbę uwierzytelnienia opartego na haśle. syslog twojego serwera może zawierać pewne wiadomości od sshd, które rzucają na to trochę światła.
Przeładuj zmienione konfiguracje
Pamiętaj, aby zasygnalizować
sshd
przeładowanie wszelkich zmian konfiguracji. Na przykładkill -HUP $(cat /etc/sshd.pid)
źródło
Jeśli chodzi o powyższy post, w obliczu tego samego problemu, właśnie zmieniłem linię
w pliku / etc / ssh / sshd_config i działało.
Co więcej, być może lepiej jest użyć
aby ponownie załadować zmiany w konfiguracji sshd.
źródło
Innym rozwiązaniem dla funkcji Red Hat Enterprise Linux 6.5 SELinux, uniemożliwiającej sshd odczytanie $ HOME / .ssh, jest skorzystanie z restorecon, zobacz moją odpowiedź tutaj /superuser//a/764020/213743 .
źródło
Dla mnie było to tak proste jak
źródło
Miałem ten sam problem, wykonałem 3 kroki, aby utworzyć hasło bez logowania i działa dobrze
źródło