Załóżmy, że Mysql -dbs i administrator ze złym nawykiem zapominają hasła (lub wystarczająco paranoidalnego, wymagającego bardziej twórczego uwierzytelnienia, a nie tylko hasła). Czy możliwe jest uzyskanie dostępu do powłoki -root Mysql na przykład w taki sposób, że agent Ssh-agent przechowuje klucze prywatne, a następnie mogę zalogować się przez "mysql -u root"
(bez wpisywania haseł lub kombinacji klucza prywatnego i hasła)?Logowanie do konta root MySQL z kluczem prywatnym SSH?
8
A
Odpowiedz
7
Można oczywiście użyć zwykłego uwierzytelniania za pomocą klucza SSH, aby zalogować się do konta powłoki, a następnie użyć pliku ~/.my.cnf
z hasłem w środku. Będzie to domyślnie używane przez klienta wiersza poleceń mysql
.
Jego zawartość powinna być:
[client]
user=the_user_name
password=the_password
Pamiętaj, że ktokolwiek może odczytać ten plik będzie mógł korzystać z tych poświadczeń. Chroń go, aby tylko właściciel mógł go przeczytać (i zablokować terminal, jeśli odejdziesz od klawiatury).
Jeśli chcesz używać uwierzytelniania z użyciem klucza bezpośredniego, możesz również użyć SSL client-certificate authentication. Możesz utworzyć własny mały ośrodek CA i wystawić swoje certyfikaty klienta. Wiele narzędzi obsługuje to, jeśli potrzebujesz bezpośredniego dostępu zdalnego.
+1. Byłem w połowie pisania tej odpowiedzi osobiście. –
..precisely, dziękuję! Poza tym, mam kilka pomysłów, takich jak konfigurowanie rzeczy ssh-fs za pomocą gpg, muszę pomyśleć jak starannie zabezpieczyć plik (jestem w systemie współdzielonym) - być może używając wielu sposobów uwierzytelniania, tak naprawdę nie ma znaczenia, czy utracisz hasło pomysły? Być może teraz przejadam, badając. – hhh
To niekoniecznie będzie działać z ssh-fs. Ten plik będzie używany przez klienta 'mysql', jeśli działa na rzeczywistym komputerze (i tylko w formie niezaszyfrowanej). (Można oczywiście zamontować zdalny katalog domowy za pomocą ssh-fs, a następnie określić ten plik konfiguracyjny za pomocą lokalnego klienta 'mysql', ale wydaje się to zawiłe). Zachowaj hasło root mysql w tym pliku na koncie root, jeśli potrzebujesz. W przypadku dostępu zdalnego lepszym rozwiązaniem mogą być certyfikaty klienta (choć bardziej angażują się w zarządzanie). – Bruno