Slackware - SSH - wirtualna maszyna problem

Problemy dotyczące innych systemów operacyjnych
newslack
Posty: 13
Rejestracja: 05 maja 2019, 15:40

Slackware - SSH - wirtualna maszyna problem

Post autor: 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:

Kod: Zaznacz cały

/etc/rc.d/rc.sshd start
wyskakują błędy:

Kod: Zaznacz cały

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:

Kod: Zaznacz cały

Port 22
Protocol 2
HostKey /root/.ssh/id_rsa.pub
ale po wpisaniu

Kod: Zaznacz cały

/etc/rc.d/rc.sshd start
wyskakuje:

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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-se ... inux-unix/

Kod: Zaznacz cały

    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.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2302
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Re: Slackware - SSH - wirtualna maszyna problem

Post autor: LordRuthwen »

To o czym piszesz (HostKey) to klucz jakim przedstawia się serwer, nie klient.
Przy połączeniu ssh negocjujesz połączenie wysyłając swój klucz publiczny, w odpowiedzi serwer wysyła swój publiczny i komunikacja jest szyfrowana z użyciem klucza publicznego odbiorcy (jak w każdym szyfrowaniu asynchronicznym).
A na lokalnym kompie masz mieć swoje klucze.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Re: Slackware - SSH - wirtualna maszyna problem

Post autor: mariaczi »

Namieszałeś z tymi kluczami, że hej.
Na slackware skrypt startowy od ssh sam generuje sobie klucze dla hosta, jeżeli ich nie ma (np. pierwszy start serwisu):

Kod: Zaznacz cały

# grep -i ssh_host /etc/rc.d/rc.sshd 
  if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then
    /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
  if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
    /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
  if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then
    /usr/bin/ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
  if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then
    /usr/bin/ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
Co chciałeś dokładnie uzyskać - połączenie do ssh po kluczu?
newslack
Posty: 13
Rejestracja: 05 maja 2019, 15:40

Re: Slackware - SSH - wirtualna maszyna problem

Post autor: newslack »

@mariaczi
to co napisałeś mam wrzucić w skrypt i uruchomić?
Wiem, tutaj muszę się z tobą w 100% zgodzić że namieszałem i kompletnie się w tym pogubiłem. Dopiero rozpoczynam swoją przygodę z Linuxem/Slackware, tzn. jakieś podstawy znam, ale w tej kwestii zdecydowanie mniej. Chciałem z komputera z Windowsem, połączyć się za pomocą klucza z serwerem Linuxowym Slackware. A że na Linuxie sypało mi błędy z kluczami to zacząłem je generować.
"Na slackware skrypt startowy od ssh sam generuje sobie klucze dla hosta, jeżeli ich nie ma". To u mnie nie wygenerował bo sypało błędami.

Dzięki Panowie/Panie za poświęcony czas, przeanalizowałem wasze odpowiedzi i czy moglibyście mnie naprowadzić czy dobrze to rozumiem:
- 1) Czyli tak np. na Windowsie generuje klucze za pomocą np. puttygen prywatny i publiczny, prywatny trzymam na kompie z Windowsem, publiczny wrzucam na serwer Slackware i dodaje go do authorized_keys i wtedy używając klucza prywatnego na Windowsie mogę się połączyć z serwerem Slackware?
- 2) Odnośnie HostKey w sshd_config. Jeśli wygeneruje sobie klucze na Slackware za pomocą polecenia ssh-keygen -t rsa i w sshd_config jako HostKey wskaże klucz prywatny a obcej osobie dam np. na Debiana klucz publiczny i on umieści go w authorized_keys to będe mógł się połączyć z serwera Slackware na serwer Debiana? W skrócie HostKey w sshd_config na Linuxie działa tak jakbym na Windowsie do putty dodał swój klucz prywatny? Jeśli tak, to po co żeby uruchomić SSH na Slackware mam podać w sshd_config ten HostKey a np. jeśli nigdy nie mam zamiaru się łączyć z Slackware na inny serwer, tylko chce uruchomic SSH po to żeby się zemna łączyli to w jakim celu jest ten klucz?

Z góry dzięki za odp czy dobrze rozumiem punkt 1 i drugi? @LordRuthwen @mariaczi.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2302
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Re: Slackware - SSH - wirtualna maszyna problem

Post autor: LordRuthwen »

1. Nie musisz wrzucać pliku, wystarczy, że dopiszesz go do authorized_keys.
2. Nie. Musisz wygenerować dla użytkownika klucz za pomocą tego polecenia, które podałeś ale nie wpisujesz go nigdzie, klucz z ~/.ssh/ jest wykorzystywany domyślnie dla polecenia ssh.
newslack
Posty: 13
Rejestracja: 05 maja 2019, 15:40

Re: Slackware - SSH - wirtualna maszyna problem

Post autor: newslack »

LordRuthwen pisze: 07 maja 2019, 07:52 1. Nie musisz wrzucać pliku, wystarczy, że dopiszesz go do authorized_keys.
2. Nie. Musisz wygenerować dla użytkownika klucz za pomocą tego polecenia, które podałeś ale nie wpisujesz go nigdzie, klucz z ~/.ssh/ jest wykorzystywany domyślnie dla polecenia ssh.
Rozumiem już o co chodzi gdybym chciał się połączyć z Windowsa na Linuxa za pomocą klucza, i z Linuxa na Linuxa jak to zrobić, i czaje że nie muszę wrzucać pliku. Elegancko mnie naprowadziliście. To załapałem. Ale 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ć? Myślałem, że jest to klucz prywatny, który służy do łączenia się z inną maszyną, ale napisałeś mi że nie, bo ten klucz prywatny jest w katalogu ~/.ssh/ i jest wykorzystywany dla polecenia ssh. To nie wiem wtedy po co ten HostKey w sshd_config.
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 :D
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2302
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Re: Slackware - SSH - wirtualna maszyna problem

Post autor: LordRuthwen »

sshd_config - zwróć uwagę na literkę d, która w tym przypadku pochodzi od daemon - jest to konfiguracja serwera ssh a nie klienta
A daje on tyle, że umożliwia negocjację połączenia szyfrowanego asynchronicznie - poczytaj jak taki szyfr działa i co jest niezbędne - wszystko stanie się jasne. https://www.digitalocean.com/community/ ... on-process - nie ma obrazków, ale jest chyba sensownie napisane
ODPOWIEDZ