Linux: Hash hasła

2024-05-07

W Linuxie nowego użytkownika dodasz komendą

adduser new_user_name

Jedna z opcji tego polecenia pozwala na przesłanie hasła, ale to hasło nie jest w postaci tekstu, tylko w postaci zahaszowanej. A jak taki hash uzyskać? Można tak:

pass=$(echo „Pa$$w0rd” | openssl passwd -1 -stdin)

Korzystamy tu z polecenia openssl, które

  • wygeneruje hash hasła (słowo passwd)
  • hasło będzie hashowane algorytmem MD5 (-1), a gdyby przesłać parameter -6, to były to algorytm SHA512
  • hasło czyta ze standardowego wejścia. Tutaj tym standardowym wejściem jest komenda echo
  • hash będzie zapisany w zmiennej pass

Teraz więc można już utworzyć użytkownika z hasłem:

sudo adduser -m -p „$pass” $u

No i uwaga – zdecydowanie nie jest to zalecane rozwiązanie, bo… jeśli ktoś będzie sprawdzał jakie komendy są uruchamiane w czasie, kiedy ta komenda będzie uruchamiana to może przechwycić hash hasła, a stąd już otwiera sie droga do złamania hasła w oparciu o hash, ale w pewnych sytuacjach takie podejście też się może przydać 😉

By Rafał Kraik in Linuxy

Visual Studio Code pyta o konto GitHub

2024-05-06

Po reinstalacji systemu się zaczęło… za każdym razem, kiedy trzeba było skomunikować sie z GitHubem: fetch, pull, push… pojawiało się okienko pytające (zresztą bardzo uprzejmie) o to, które konto GitHub powinno być wykorzystane.

Przyczyna jest taka, że rzeczywiście w ramach różnych projektów wykorzystywałem różne konta GitHub. Tymczasem podczas połączenia w remote pojawiał się po prostu namiar na repo na github:

git remote -v
origin https://github.com/org/repo.git (fetch)
origin https://github.com/org/repo.git (push)

Jakby tu dodać informacje o użytkowniku? Da się! Trzeba tylko przedefiniować remote:

git remote set-url origin https://user-name@github.com/org/repo.git

Po tej zmianie git remote -v zwraca już poprawne wartości:

git remote -v
origin https://user-name@github.com/org/repo.git (fetch)
origin https://user-name@github.com/org/repo.git (push)

a Visual Studio Code przestalo pytac o uzytkownika!

By Rafał Kraik in Git

Git: self signed certificate in certificate chain

2024-05-01

Taki komunikat możesz zobaczyć, gdy brakuje certyfikatów wymaganych do bezpiecznego przesłania danych. Pamiętajmy, że certyfikaty nie tylko pracują w szyfrowaniu danych, ale też w uwierzytelnieniu rozmawiających ze sobą systemów.

Obejściem problemu (ale nie rozwiązaniem) jest wyłączenie kontroli certyfikatu – po prostu będziemy akceptować wszystkie certyfikaty jak leci – potencjalnie również te nie podpisane

git config –global http.sslVerify false

Więcej informacji:

git – SSL certificate problem: self signed certificate in certificate chain – Stack Overflow

By Rafał Kraik in Git

Terraform: Index value required

2024-04-11

Operacje na terraform state to coś, czego raczej należy unikać, ale czasami coś tam trzeba zadziałać…

Polecenie

terraform state list

zwraca listę wszystkich zasobów którymi zarządza Terraform. Na tej liście w moim przypadku pojawił sie taki oto wpis:

module.net_conf.azurerm_private_endpoint.private_endpoint[„update_key”]

Ten oto wpis trzeba było usunąć. Zwykle wystarcza do tego polecenie terraform state rm, po którym podaje sie nazwę obiektu do usunięcia, o tak:

terraform state rm module.net_conf.azurerm_private_endpoint.private_endpoint["update_key"]

Niestety polecenie kończyło się brzydkim błędem:

│ Error: Index value required
│   on  line 1:
│  (source code not available)
│Index brackets must contain either a literal number or a literal string.

No jak to! Przecież w nawiasie jest „literal string”!

Przyczyna – problemy z interpretacja w linii komend cudzysłowa. Komendę oryginalnie uruchamiałem w powershell. Przeniosłem ją do cmd i delikatnie zmieniłem:

terraform state rm module.net_conf.azurerm_private_endpoint.private_endpoint[\"update_key\"]

Po tej zmianie, wszystko zadziałało!

By Rafał Kraik in Azure

AWS: Błąd połączenia do EC2 z Putty

2024-04-06

Podczas tworzenia instancji EC2 na AWS można wygenerować klucz pozwalający na połączenie się do EC2 za pomocą Putty. Niestety, przy takiej próbie połączenia można dostać też nieciekawy błąd: „Server Refused our key”

Poza sprawdzeniem standardowych rzeczy:

  • czy łączymy się do właściwego serwera
  • czy korzystamy z właściwego konta użytkownika
  • czy korzystamy z właściwego klucza – w sensie do właściwego serwera, ale też właściwego typu (Putty oczekuje PPK, a nie PEM).

można jeszcze sprawdzić:

  • czy połączenie konfigurujemy na adres IP czy na nazwę. Lepiej jest wskazywać na nazwę
  • w adresie można jednocześnie podać nazwę użytkownika i hasło wpisując
    username@server_address
    np.:
    ec2-user@<my.public.addres.name>
  • czy na komputerach jest właściwa data i czas
  • no i wreszcie czy mamy najnowszą wersję Putty.

U mnie pomogła właśnie ta ostatnia wskazówka. Putty było za stare 😉

By Rafał Kraik in AWS

Windows: Nie można odtworzyć MP4: Server execution failed

2024-03-11

Jeśli jesteś ofiarą błędu „Server execution failed”, to

  • otwórz Managera zadań (Ctrl+Shift+Esc),
  • przejdź na „szczegóły”
  • odszukaj procesu „Windows Media Player” i zakończ go

Jest szansa, że po tej akcji, pliki będą sie poprawnie odtwarzać 😉

By Rafał Kraik in Helpdesk

Azure: Jak skopiować plik na blob storage container za pomocą AZ CLI?

2024-02-21

Zacznijmy od tego, że się trzeba zalogować. Można to zrobić na różne sposoby, ale powiedzmy, że wykonamy polecenie:

az login

i dokończymy logowanie w przeglądarce.

Istotne jest, aby mieć odpowiednie uprawnienia. W przeciwnym razie dostaje się komunikat podobny do poniższego:

You do not have the required permissions needed to perform this operation.
Depending on your operation, you may need to be assigned one of the following roles:
„Storage Blob Data Owner”
„Storage Blob Data Contributor”
„Storage Blob Data Reader”
„Storage Queue Data Contributor”
„Storage Queue Data Reader”
„Storage Table Data Contributor”
„Storage Table Data Reader”

Jeśli dodasz sobie uprawnienia, bo były za niskie, to poczekaj chwilę przed kolejną próbą. Azure nie od razu widzi nadane uprawnienia. Dla pewności można sie nawet wylogować i zalogować ponownie. Polecenie do wylogowania to:

az logout

No i przechodzimy do esencji, czyli kopiowania pliku. Odpowiednia komenda to az storage blob copy start. Polecenie trochę długie, ale ma sens. Na początku az, czyli nazwa komendy. Potem storage, bo pracujemy ze storage. Blob, bo kopiowanie ma się odbyć na blob service, dalej copy, bo chcemy przekopiować plik i ostatecznie start, bo to polecenie jest asynchroniczne – komenda się wykona, a kopiowanie może nadal trwać w tle. Dodatkowe parametry do przekazania to:

  • –destination-blob <filename> – określa nazwę, pod jaką plik ma się pojawić na blobie
  • –destination-container <containername> – określa nazwę kontenera, do którego plik ma być przesłany
  • –account-name <storageaccountname> – tutaj podaj krótką nazwę storage account. Nie trzeba podawać długiej nazwy, bo Azure już wie, że chodzi o blob service, a krótka nazwa i tak musi być unikalna globalnie w skali całego świata
  • –source-uri <uri> – określa adres źródłowy, pod jakim znajduje się plik do przekopiowania
  • –authmode login – mówi, że żądanie ma być uwierzytelnione w oparciu o EntraID – właśnie dlatego ten przykład zaczął się od zalogowania do Azure

Oto przykład pełnej komendy, która „kradnie” plik z wikipedii i umieszcza na twoim storage account

az storage blob copy start --destination-blob comp1.jpg --destination-container test_container --account-name stoacc7635442 --source-uri https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/IMac.jpg/330px-IMac.jpg --auth-mode login
By Rafał Kraik in Azure