Próbowałem konfiguracji hasłem mniej ssh / b A
, aby B
i B
na A
jak dobrze. Wygenerowano klucz publiczny i prywatny ssh-keygen -trsa
na obu komputerach. Użył ssh-copy-id
narzędzia do kopiowania publiczno-klucze A
do B
jak również B
do A
.
Bez hasła hasło ssh działa od A
do, B
ale not
od B
do A
. Sprawdziłem uprawnienia do folderu ~ / ssh / i wydaje się być normalny.
A's .ssh
uprawnienia do folderów:
-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 .
B's .ssh
uprawnienia do folderów:
-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
jest Ubuntu 10.04 (OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 marca 2009) B
jest maszyną debianową (OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 paź 2007)
Od A
:
#ssh B
działa w porządku.
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 w zasadzie oznacza, że nie uwierzytelnia się przy użyciu pliku /root/id_rsa
. Uruchomiłem ssh-add
polecenie również na obu maszynach.
Część uwierzytelniająca /etc/ssh/sshd_config
pliku to
# 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
Skończyły mi się pomysły. Każda pomoc będzie mile widziana.
PermitRootLogin
w/etc/ssh/sshd_config
A?yes
przeciwnym razie użytkownik nie zostanie poproszony o podanie hasła.Odpowiedzi:
Upewnij się, że postępujesz zgodnie z następującą procedurą:
Na komputerze A
otwórz terminal i wprowadź następujące polecenia:
Aby upewnić się, że jesteśmy rootem.
Jeśli powyższe polecenie wyprowadza coś takiego jak poniżej, jesteśmy root, przełącz się na root za pomocą
su
polecenia1) Utwórz klucze.
Nie użyłem żadnego hasła. Jeśli potrzebujesz, możesz go użyć.
2) Skopiuj klucz publiczny do
.ssh/authorized_keys
pliku komputera B.Teraz spróbuj zalogować się do komputera za pomocą
ssh 'root@mylap'
i zalogować się :aby upewnić się, że nie dodaliśmy dodatkowych kluczy, których się nie spodziewałeś.
Zamień mylap na nazwę hosta lub adres IP komputera, na który chcesz się zalogować (tj. Komputera B)
3) Zaloguj się do B bez hasła
Na komputerze B
4) Utwórz klucze, aby zalogować się ponownie na maszynie A.
5) Skopiuj klucz publiczny do
.ssh/authorized_keys
pliku komputera A.Teraz spróbuj zalogować się do komputera za pomocą
ssh 'root@aneesh-pc'
i zalogować się :aby upewnić się, że nie dodaliśmy dodatkowych kluczy, których się nie spodziewałeś.
6) Zaloguj się do A bez hasła
Jeśli jesteś w stanie wykonać te kroki, to koniec. Teraz masz dwa komputery z logowaniem z włączonym kluczem ssh (klucz publiczny).
źródło
/root
(770)drwxrwx--- 70 root root 4096 2011-07-27 00:37 ..
był zbyt otwarty. Zmieniono uprawnieniadrwxr-xr-x
i teraz działa. Nie mogłem sobie wyobrazić, że uprawnienia katalogu nadrzędnego wpływają nassh
.770
również ustawił, zmienił się na a750
i wszystko jest w porządku ze światem :) Zawsze wydaje mi się, że zapominam, że linux preams może działać w odwrotny sposób.Po skonfigurowaniu ssh bez hasła nadal byłem proszony o podanie hasła użytkownika. Patrząc
/var/log/auth.log
na zdalną maszynę, wskazałem na problem:Więc upewnij się, że masz rację:
Chociaż zabronienie innym użytkownikom pisania nad twoim
.ssh
folderem jest oczywiste, posiadanie takich samych wymagań dotyczących folderu domowego było trudniejsze.Należy także sprawdzić
/etc/ssh/ssd_config
, aby upewnić się, żeRSAAuthentication
iPubkeyAuthentication
opcje nie są wyłączone. Domyślnieyes
nie powinno to stanowić problemu.źródło
~/.ssh
na coś innego, a następnie utworzyć nowy z własnym kluczem.Prawdopodobnie tylko problem z uprawnieniami wyższego poziomu. Musisz usunąć uprawnienia do zapisu z grupy i innych do katalogu domowego i katalogu .ssh. Aby naprawić te uprawnienia, uruchom
chmod 755 ~ ~/.ssh
lubchmod go-w ~ ~/.ssh
.Jeśli nadal masz problemy, wydaj następujący grep w swoim dzienniku:
(zastąp
LOCAL_USER_NAME
swoją lokalną nazwą użytkownika ...)Mam nadzieję, że powinno to powiedzieć więcej o twoim problemie, zakładając, że informacje o uwierzytelnianiu sshd są rejestrowane w bezpiecznym dzienniku, który powinien być domyślnie. Jeśli zobaczysz błędy, które wyglądają tak:
Jest to problem opisany powyżej i musisz znaleźć dany katalog i usunąć uprawnienia do zapisu z grupy i innych.
Ponieważ musisz ograniczyć uprawnienia do zapisu w katalogu domowym (mimo że uprawnienia są już ograniczone w twoim .ssh i kolejnych katalogach) pozwoli innym użytkownikom zmienić nazwę twojego katalogu .ssh i utworzyć nowy - chociaż to byłby bezużyteczny, ponieważ jest (z powodu złych uprawnień) poprawką dla większości użytkowników prawdopodobnie byłaby zmiana uprawnień zamiast sprawdzania zawartości katalogu ...
TLDNR : Zezwolenie na dostęp do zapisu dla grupy i / lub innych w twoim katalogu domowym spowoduje, że ssh wymusi hasło logowania.
źródło
czy korzystasz z konta root na każdym komputerze? Zwykle na Ubuntu używasz konta użytkownika i nadajesz mu uprawnienia sudo zgodnie z wymaganiami.
Jeśli używasz użytkownika innego niż root,
sudo chown $USER -R ~/.ssh
możesz rozwiązać problemInne rzeczy do sprawdzenia:
dokładnie sprawdzić, że B znajduje
id_rsa.pub
się w użytkownikaauthorized_keys
.sprawdź, czy
/etc/ssh/sshd_config
zawieraźródło
/etc/ssh/sshd_config
plikuw / etc / ssh / sshd_config o zmianie celu
do
następnie zabij -HUP swój sshd PID:
źródło
root
logowania SSH. To zupełnie nie ma związku z tym, o co chodzi w tym pytaniu. Ponadto, jeśliroot
konto jest włączone (domyślnie nie jest dostępne w Ubuntu), włączenieroot
logowania SSH może być dość niebezpieczne.