Linuxiarze.pl Forum

Dystrybucje Linux => Slackware => Wątek zaczęty przez: newslack w Maj 05, 2019, 03:50:06 PM

Tytuł: Slackware - SSH - wirtualna maszyna problem
Wiadomość wysłana przez: newslack w Maj 05, 2019, 03:50:06 PM
Postawiłem sobie slackware 14.2  na wirtualnej maszynie, karte sieciową ustawiłem jako "mostkowana karta sieciowa[bridged]", skonfigurowałem ustawienia sieci za pomocą połączenia netconfig, jest internet. Maszyna wirtualna ma adres ip 192.168.1.20, a maszyna lokalna 192.168.1.15, mogę pingować maszynę 192.168.1.20(wirtualną) z komputera lokalnego. Jednak od dłuższego czasu próbuję ustawić, abym mógł się połączyć z maszyną wirtualną za pomocą protokołu ssh.

Po wpisaniu:
/etc/rc.d/rc.sshd start
wyskakują błędy:
key_load_public: invalid format
Could not load host key: /etc/ssh/ssh_host_rsa_key
key_load_public: invalid format
Could not load host key: /etc/ssh/ssh_host_dsa_key
key_load_public: invalid format
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
key_load_public: invalid format
Could not load host key: /etc/ssh/ssh_host_ed25519_key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.


Mógłby ktoś udzielić wskazówek?
Próbówalem generowania tych kluczy, przy użyciu polecenia:
ssh-keygen -t rsa
    $HOME/.ssh/id_rsa– contains your private key.
    $HOME/.ssh/id_rsa.pub – contain your public key.

i modyfikowałem /etc/ssh/sshd_config aby wskazywał na id_rsa, ale chyba czegoś tu nie rozumiem. Mógłby ktoś wytłumaczyć?
W skrocie: efekt jaki chce osiągnąć to mieć możliwośc połączenia się z komputera lokalnego (windows 10) przez putty po protokole ssh z maszyną wirtualna. Dopiero rozpoczynam swoją przygodę z slackware.

Edit:
Zrobiłem tak, że zmodyfikowałem sshd_config ustawiłem tam:
Port 22
Protocol 2
HostKey /root/.ssh/id_rsa.pub


ale po wpisaniu
/etc/rc.d/rc.sshd start
wyskakuje:

Could not load host key: /root/.ssh/id_rsa.pub
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.


Mógłby mi ktoś wyjaśnić co robie zle? Bo ewidentnie cos nie tak rozumiem, a nie potrafie samodzielnie dojśc jaki błąd popełniam :P

Edit2:
Ok, skasowałem .pub i działa
Port 22
Protocol 2
HostKey /root/.ssh/id_rsa


Teraz pytanie, klucz prywatny jest na komputerze lokalnym, a publiczny na serwerze? Już zgłupiałem
Cały czas myślałem, że prywatny klucz czyli id_rsa trzymam na komputerze lokalnym, a id_rsa.pub na serwerze, ale teraz jak w HostKey wskazałem na id_rsa i zadziałało to już zgłupiałem jak to działa. Wytłumaczy mi to ktoś? I o co chodzi z tym authorized_keys? Nie miałem tego pliku więc utworzyłem poleceniem: cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, tylko w jaki celu to się robi? Skąd SSH wie ze w pliku authorized_keys jest ten klucz publiczny? Skoro na serwerze jako HostKey wskazałem klucz prywatny, do authorized_keys dodałem klucz publiczny, a klucz publiczny mam mieć na swoim lokalnym komputerze, to ja już nie rozumiem.
Zatem dlaczego HostKey musi wskazywać na klucz prywatny? A w authorized_keys ma być klucz publiczny? A na lokalnym kompie mam mieć id_rsa.pub czy id_rsa?

Inna opcja na przyszłość - gdybym się zdecyował w celach testowych uniknąć i nie zabezpieczać swojego serwera kluczami, tylko zwykłym logowaniem i hasłem to jak zmodyfikować sshd_config, aby można było uruchomić SSH?

Według:
https://www.ssh.com/ssh/host-key
Host keys are key pairs, typically using the RSA, DSA, or ECDSA algorithms. Public host keys are stored on and/or distributed to SSH clients, and private keys are stored on SSH servers.

A tutaj już odwrotnie:
https://www.cyberciti.biz/faq/how-to-set-up-ssh-keys-on-linux-unix/
    server1.cyberciti.biz – You store your public key on the remote hosts and you have an accounts on this Linux/Unix based server.
    client1.cyberciti.biz – Your private key stays on the desktop/laptop/ computer (or local server) you use to connect to server1.cyberciti.biz server. Do not share or give your private file to anyone.
Tytuł: Odp: Slackware - SSH - wirtualna maszyna problem
Wiadomość wysłana przez: hobbysta w Maj 06, 2019, 08:16:13 PM
Klucze dla systemu generowane podczas pierwszego startu systemu tuz po  instalacji - dlatego prawdopodobnie masz zle zainstalowany system. Mozesz ewentualnie jako root uruchomic narzedzie pkgtool

# pkgtool

i wybrac opcje setup i ponownie skonfigurowac uslugi - sshd jest usluga.
Tytuł: Odp: Slackware - SSH - wirtualna maszyna problem
Wiadomość wysłana przez: newslack w Maj 13, 2019, 07:59:58 PM
W dalszym ciągu nie potrafię zrozumieć do czego jest ten HostKey w sshd_config. Co on takiego daje? Wiem, że bez niego nie mogłem uruchomić ssh na Slackware, ale na co wskazuje ten HostKey? bo wiem, że na plik: "/etc/ssh/ssh_host_rsa_key". Tylko czemu ten plik ma służyć?
Tak w skrócie mógłbyś mi to zobrazować albo podać na prostym przykładzie w jakim celu jest ten HostKey w sshd_config i co by było gdyby go nie było (z tego co wiem to bym nie uruchomił ssh, ale po za tym co on daje?), ewentualnie gdzie poczytać jakieś wyjaśnienia o tym? Czytałem troche w necie, ale dalej nie jest to dla mnie jasne, myślałem, że wskazuje on na klucz prywatny. Chętnie bym poszerzył swoją wiedze w tym temacie
Tytuł: Odp: Slackware - SSH - wirtualna maszyna problem
Wiadomość wysłana przez: hobbysta w Maj 14, 2019, 05:54:27 PM
Wlasnie odkrylem, ze jestem nieukiem i wogole. Polaczenie ssh jest kodowane - para kluczy jest potrzebna do kodowania i dekodowania polaczenia. Klucze sa potrzebne do szyfrowania i deszyfrowania polaczenia. Ale takie rozwiazanie para kluczy nie jest jakies specyficzne tylko dla ssh - np mozna szyfrowac emaile w taki sposob. Genrowana jest para kluczy: prywatny i publiczny - i niestety w tym miejscu moja wiedza teoretyczna sie konczy - ale na wiki bez problemu znajdziesz wszystkie potrzebne informacje - albo na youtube jakis filmik o tym jak to rozwiaznie funkcjonuej - generalnie jak to rozumiem - chodzi wymiane kluczy - chyba publicznych nie? Tak przynajmniej z nazwy wynika - dalek kazdy ma wlasny prywatny klucz - i teraz jedym z tych kluczy koduje sie dane - a drugim dekoduje - ktorym co sie robi to nestety nie wiem. Wywolanie ssh powoduje ze sshd na zdalnym komputerze wysyla klucz - jesli kucz nie ma w pliku kluczy uzytkownika wtedy ssh pyta czy klucz zaakceptowac - wtedy wpisuje sie tak i polaczenie juz moze byc nawiazane - i dalej jest weryfikacji hasla uzytkownika na zdalnym komputerze.  Kazy uytkownik lokalnie ma wlasny plik w katalogu domowym .ssh/known_hosts - wlasnie z kluczami - tak wyglada moj

bash-4.3$ cat .ssh/known_hosts
192.168.1.69 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKz3UUArqyxZg8zr0s3GNUJ5SJ8moImHcpadpfJG0n+SygMZ/cF9v/qdElR2g2aNlgFK1Keplsyg2qHE8PQNDOQ=
localhost ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPhYqQNgzD9bAi/1u6JB5SHOLwvwgUynNrE6JeQHbmlBlAxGU3efA7Iav0Vb4Ya+m8QhC6gw3qk9xE1I14Fz02g=

jesli nie masz tego pliku to zrob tak

$ ssh localhost

wtedy taki powinien powstac a kucz ktory odpowiada polu localhost jest jednym z kluczy w katalogu /etc/ssh/