これを実行した場合:
ssh user@server 'mysql -u user -p'
MySQLパスワードの入力を求められ、入力を開始すると、パスワードが画面に表示されます。どうすればこれを防ぐことができますか?ログインしてsshからMySQLコマンドを実行すると、すべてが正常に機能します。
これを実行した場合:
ssh user@server 'mysql -u user -p'
MySQLパスワードの入力を求められ、入力を開始すると、パスワードが画面に表示されます。どうすればこれを防ぐことができますか?ログインしてsshからMySQLコマンドを実行すると、すべてが正常に機能します。
回答:
実行するリモートコマンドを指定すると、SSHはttyを割り当てないため、リモートコマンドはエコーを無効にできません。次の-tオプションを使用して、SSHにttyを提供させることができます。
ssh -t user@server 'mysql -u user -p'
同等のオプション(構成-oファイル用または構成ファイル用)はRequestTTYです。非対話型コマンドに望ましくない影響を与える可能性があるため、configで使用しないように注意してください。
RequestTTYしてくださいman 5 ssh_config。
あなたが信頼できる場合は、[*]リモートコンピュータのセキュリティをで提案されているように、あなたは、適切に保護されたオプションファイルにパスワードを保存することができますパスワードのセキュリティのためのエンドユーザーガイドラインマニュアルの章を介して通信することなく、sshまたは各を入力します時間。
具体的に.my.cnfは、ホームディレクトリのファイルの[client]セクションに次の行を追加できます。
[client]
password=your_pass
もちろん、ファイルアクセスモードを400または600に設定するなどして、自分以外のユーザーがそのファイルにアクセスできないようにする必要があります。たとえば、
chmod 600 ~/.my.cnf
その後、次のようなものを使用できます
ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
ここuser110971で、アカウントのユーザー名です。
ssh -t)この問題は、コマンドを送信するたびに発生しssh、デフォルトでsshは擬似ttyを割り当てないため、入力を挿入する必要があります。
オプション-tでttyの割り当てを強制することができます(必要に応じて2つ以上):
-t擬似tty割り当てを強制します。 これは、リモートマシン上で任意の画面ベースのプログラムを実行するために使用できます。これは、たとえばメニューサービスを実装する場合に非常に便利です。 sshにローカルttyがない場合でも、複数の
-tオプションによりttyの割り当てが強制されます。
についてのこのDebian投稿(Jul_11_2008)で読むことができるようにsudo、それは繰り返しを好む古い問題です:
ssh user@server "sudo ls" password: passwordパスワードが表示されます
解決策は、-tフラグを使用して、sshに強制的にpseudo-ttyを割り当てることです。
ssh -t user@server sudo ls
[*]作業中のクライアントで、自分とrootのみがアクセスできるファイルにパスワードを残しておくことができる場合。
OSを変更してリモートコンピューターを再起動したり、HDDを削除したりできる場合、コンピューターを完全に安全と見なすことはできません...しかし、その場合、データベース自体は安全ではありません。