Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Slackware - SSH - wirtualna maszyna problem

Zaczęty przez newslack, Maj 05, 2019, 03:50:06 PM

Poprzedni wątek - Następny wątek

newslack

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.

hobbysta

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.

newslack

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

hobbysta

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/

Zobacz najnowsze wiadomości na forum