Przechowywanie hasła w chronionym pliku opcji
Jeśli możesz zaufać bezpieczeństwu komputera zdalnego [*] , możesz przechowywać hasło w odpowiednio chronionym pliku opcji, zgodnie z sugestią zawartą w rozdziale Wskazówki dla użytkownika końcowego dotyczące bezpieczeństwa hasła , bez potrzeby komunikowania się ssh
lub wpisywania każdego z nich czas.
W szczególności możesz dodać wiersz w sekcji [klient] pliku .my.cnf
w katalogu domowym:
[client]
password=your_pass
Oczywiście musisz uniemożliwić dostęp do tego pliku każdemu poza tobą, ustawiając tryb dostępu do pliku na 400 lub 600 za pomocą np.
chmod 600 ~/.my.cnf
Następnie możesz użyć czegoś takiego
ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
gdzie user110971
jest nazwa użytkownika twojego konta.
Zmuszanie ssh do przydzielenia pseudo tty ( ssh -t
)
Ten problem występuje za każdym razem, gdy wysyłasz komendę ssh
i musisz wstawić dane wejściowe, ponieważ domyślnie ssh
nie przydzielisz pseudo-tty.
Możesz wymusić alokację tty z opcją -t
(w razie potrzeby nawet więcej niż jedną):
-t
Wymuś alokację pseudotty. Można to wykorzystać do wykonania dowolnych programów ekranowych na zdalnym komputerze, co może być bardzo przydatne, np. Przy wdrażaniu usług menu. Wiele -t
opcji wymusza alokację tty, nawet jeśli ssh nie ma lokalnego tty.
Jak można przeczytać w tym poście Debiana (Jul_11_2008) o sudo
, jest to stary problem, który kocha się powtarzać:
ssh user@server "sudo ls"
password: password
I hasło zostanie wyświetlone
Rozwiązaniem jest zmuszenie ssh do przydzielenia pseudo-tty z flagą -t:
ssh -t user@server sudo ls
Uwaga:
[*] Jeśli możesz polegać na pozostawieniu hasła w pliku dostępnym tylko dla Ciebie i rootowaniu na działającym kliencie.
Jeśli można zrestartować komputer zdalny, zmieniając system operacyjny lub usunąć dysk twardy, komputera nie można uznać za całkowicie bezpieczny ... ale w takim przypadku sama baza danych nie będzie bezpieczna.