Nie mogę ssh niczego, co mogłem. Po krótkim kopaniu dowiedziałem się, że nie czyta konfiguracji ssh z mojego katalogu domowego.
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)
Na identycznym komputerze znajomego, na którym wszystko działa, wygląda to tak:
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)
Działało wcześniej i nie jestem świadomy niczego, co mogłem zrobić, aby spowodować ten problem. Jak to się mogło stać i jak to naprawić?
W linku do dokumentacji wskazanym przez Tike stwierdza to
Ze względu na możliwość nadużycia ten plik musi mieć ścisłe uprawnienia: odczyt / zapis dla użytkownika i niedostępny dla innych.
Moje uprawnienia to:
$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba 1029 1428 Jul 1 16:33 ..
-rwx------ 1 kuba 1029 1528 May 15 13:07 config
(...)
Myślę, że problemem może być zamieszanie dotyczące katalogu domowego. Gdy wymuszam lokalny plik konfiguracyjny, zaczyna on działać, a następnie nagle zaczyna czytać/nas/kuba
$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
^^^^^^^^^^
Ale mój domowy katalog wydaje się być w porządku:
$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba
ssh
ignorujeHOME
zmienną środowiskową. Ignorowanie złej praktykiHOME
wydaje się, że tak właśniessh
jest. Jeśli się nie stosujeHOME
, jedyną znaną mi alternatywą jest sprawdzenie go zuid
. Jeśli masz dwa/etc/passwd
identyczne wpisyuid
, oba kończą na tym samym.ssh/config
pliku, nawet jeśli mają inny dom.Odpowiedzi:
Wygląda na to, że jesteś uwięziony między specyficznym dla użytkownika a globalnym ssh_config.
Sprawdź ustawienia uprawnień pliku konfiguracyjnego użytkownika (
~/.ssh/config
) i ogólnosystemowego pliku konfiguracyjnego (/etc/ssh/ssh_config
), aby uzyskać szczegółowe informacje.Możesz przeczytać więcej na ten temat tutaj . Praktycznie wszystkie pliki w
.ssh
katalogu użytkownika powinny mieć rozmiar 600, aconfig
plik 644. Można to ustawić za pomocą następujących poleceń w katalogu domowym:źródło
sprawdź uprawnienia
i
Jeśli uprawnienia są złe, klient ssh nie będzie próbował z niego odczytać
źródło
Miałem ten sam problem i byłem w stanie go naprawić, ustawiając flagę + x na moim katalogu
~/.ssh
(0700), a także ustawiając 0600 na~/.ssh/config
.źródło
Miałem ten sam problem i naprawiłem go, zmuszając ssh do ponownego utworzenia
.ssh
folderu (wystarczy zmienić nazwęssh
i wykonać polecenie ssh), a następnie skopiować potrzebne pliki, z odpowiednimi uprawnieniami. (konfiguracja z 600).Najwyraźniej ssh staje się podejrzane, jeśli folder
.ssh
zostanie zmodyfikowany w sposób, który nie akceptuje ...źródło
SSH nie odczyta konfiguracji lokalnej, jeśli jest ona zainstalowana w systemie plików zamontowanym przez NFS. Warto to sprawdzić, ponieważ wszystkie uprawnienia mogą być w porządku, a SSH (przynajmniej wersja 6.6) nie daje żadnych wskazówek, dlaczego nie czyta konfiguracji użytkownika. (Jeśli jednak skorzystasz z tej
-F
opcji , przeczyta go z wolumenu NFS ).źródło
Ten sam problem napotkałem na komputerach MacO. Patrząc na informacje o debugowaniu ręcznego logowania (ssh @), dowiedziałem się, że najwyraźniej ssh myślał, że mój katalog domowy jest
/srv/home/<userid>
i szukał tam.ssh
katalogu, i zignorowałem ten w/Users/<userid>/.ssh/
Prawdopodobnie ma to coś wspólnego z pracą nad konfigurowaniem komputerów Mac w określony sposób, ale zalecam sprawdzenie tego,
ssh
a system operacyjny zgadza się, gdzie znajduje się katalog domowy;)źródło
Jak wskazał „kasperd” w swoim komentarzu do pytania, zauważ, że
ssh
niekoniecznie będzie szukał „$ {HOME} / .ssh / config”. Jak stwierdzono, ważne jest, aby kopać głębiej i dowiedzieć się, gdzie znajdował się katalog domowy w czasie logowania, a przed założeniem nowego HOME.Wskazówka do przejrzenia wyników
ssh -xvvvF ~/.ssh/config server
była bardzo wnikliwa, pomagając odpowiedzieć na to samo pytanie. Po znalezieniu się w systemie, w którym dwie różne nazwy użytkowników mają ten sam identyfikator UID w pliku „/ etc / passwd”, napotkano ten problem. Dwaj użytkownicy mają różne katalogi HOME ustawione w „/ etc / passwd”.W takim scenariuszu okazuje się, że jeśli ktoś jest zalogowany jako drugi użytkownik ze zduplikowanym UID w pliku „/ etc / passwd”,
ssh
korzysta z katalogu domowego pierwszego użytkownika z pasującym UID użytkownika uruchamiającego SSH Komenda.To prawda, że ten przypadek użycia jest dość dziwny i nie pomoże większości ludzi, ale tak się naprawdę stało, a to pytanie pomogło rozwiązać problem.
źródło
Było to spowodowane ustawieniami uprawnień do plików.
Sprawdź
.ssh
uprawnienia do katalogu i plików, sprawdź także ustawienia uprawnień do domowego katalogu.Dla mnie nie chcę, aby inni widzieli moje osobiste pliki, więc usuwam
x
pozwolenie z moich domów reż. Co prowadzi ssh do znalezienia autoryzowanych kluczy do niewłaściwej ścieżki.Jednym ze sposobów rozwiązania tego problemu było ustawienie innej ścieżki uprawnień
/etc/ssh/sshd_config
, na przykład:następnie skopiuj swój pub do
/etc/ssh/authorized_keys
, pracował dla mnie.źródło