Wenn Sie einen Remote-Befehl zum Ausführen bereitstellen, weist SSH kein tty zu, sodass der Remote-Befehl Echo nicht deaktivieren kann. Mit -t
können Sie SSH dazu zwingen, ein tty bereitzustellen Möglichkeit:
ssh -t [email protected] 'mysql -u user -p'
Die entsprechende Option (für -o
oder für Konfigurationsdatei) ist RequestTTY
. Ich warne davor, es in der Konfiguration zu verwenden, da es unerwünschte Auswirkungen auf nicht interaktive Befehle haben kann.
Speichern des Passworts in einer geschützten Optionsdatei
Wenn Sie der Sicherheit des Remote-Computers vertrauen können, können Sie das Passwort in einer ordnungsgemäß geschützten Optionsdatei speichern, wie in den Richtlinien für Endbenutzer zur Passwortsicherheit vorgeschlagen Kapitel des Handbuchs, ohne dass über ssh
kommuniziert werden muss oder jedes Mal eingeben.
Insbesondere können Sie eine Zeile im Abschnitt [client] der Datei .my.cnf
hinzufügen in Ihrem Home-Verzeichnis:
[client]
password=your_pass
Natürlich müssen Sie dafür sorgen, dass niemand außer Ihnen auf diese Datei zugreifen kann, indem Sie den Dateizugriffsmodus auf 400 oder 600 setzen, z. B. mit
chmod 600 ~/.my.cnf
Dann können Sie so etwas wie
verwendenssh [email protected] 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
wobei user110971
ist der Benutzername Ihres Kontos.
SSH dazu zwingen, einen Pseudo-TTY (ssh -t
)
Dieses Problem tritt jedes Mal auf, wenn Sie einen Befehl über ssh
senden und Sie müssen die Eingabe einfügen, da standardmäßig ssh
weist kein Pseudo-TTY zu.
Sie können die tty-Zuordnung mit der Option -t
erzwingen , (bei Bedarf sogar mehrere):
-t
Pseudo-TTY-Zuweisung erzwingen. Dies kann verwendet werden, um beliebige bildschirmbasierte Programme auf einem entfernten Computer auszuführen, was sehr nützlich sein kann, z. bei der Implementierung von Menüdiensten. Mehrere -t
Optionen erzwingen eine tty-Zuordnung, selbst wenn ssh kein lokales tty hat.
Wie Sie in diesem Debian-Beitrag (11. Juli 2008) über sudo
lesen können , es ist ein altes Problem, das gerne wiederkehrt:
ssh [email protected] "sudo ls" password: password
Und das Passwort wird Ihnen angezeigt
Die Lösung besteht darin, ssh mit dem Flag -t zu zwingen, ein Pseudo-tty zuzuweisen:
ssh -t [email protected] sudo ls
Hinweis:
Wenn Sie sich darauf verlassen können, das Passwort in einer Datei zu belassen, auf die nur Sie zugreifen können, und root auf der funktionierenden Klient.
Wenn es möglich ist, den entfernten Computer neu zu starten, das Betriebssystem zu ändern oder die Festplatte zu entfernen, kann der Computer nicht als vollständig sicher betrachtet werden... aber in diesem Fall ist die Datenbank selbst nicht sicher.
Die Mount-Option „hidepid“ für proc fs ist ebenfalls wertvoll. Es macht Ihre Befehlszeilen in der Prozessliste für andere Benutzer unsichtbar. fstab-Beispiel:
proc /proc proc hidepid=1 0 0