これを実行した場合:
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を削除したりできる場合、コンピューターを完全に安全と見なすことはできません...しかし、その場合、データベース自体は安全ではありません。