Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

修正:sudo:ttyが存在せず、askpassプログラムが指定されていない

no ttypresentおよびnoaskpassプログラム指定の出力行は、sshエラーメッセージの1つであり、問​​題の原因のポイントに実際には到達しないため、実際にはそれほど役に立ちません。おそらく、メッセージが表示されたときに実際に何らかの有効なTTYを使用していて、sshを介したsudoパスワードの入力に問題なく対処している可能性があります。構文の間違いに対処している可能性が高いですが、メッセージはこの事実に直接対応していません。

これはssh自体に関連する問題であるため、Linux、FreeBSD、macOS、およびMicrosoftWindows上のCygwinのUnixサービスで問題を再現できる可能性が高くなります。幸い、修正はこれらすべてのプラットフォームでほぼ同じであるはずです。

方法1:sshのターミナルを見つける

すでにターミナルで作業している可能性が高いですが、sshはおそらくこれを認識していません。コマンドプロンプトウィンドウ内にいるにもかかわらず、TTYターミナルエミュレータを探している可能性があります。これをテストするには、エラーを再現してみてください。例として機能するように仮想マシンを構成し、sshuser@linuxtest.example「sudo/var/mail/startup.sh」を実行しました。 テストとして。当然、コマンドとsshの行を自分がやろうとしていることに一致するものに変更する必要があります。

修正:sudo:ttyが存在せず、askpassプログラムが指定されていない

自分が思っていたサーバーにログインしていることを確認する必要があります。とにかく、sudoがまだ表示されているかどうかを確認してください:ttyが存在せず、askpassプログラムで指定されたエラーメッセージがありません。おそらく、まだ受信している場合は3回表示され、DebianまたはUbuntuでローカルにsudoを実行している場合と同じようにパスワードの入力を求められることもあります。

構文エラーを修正するには、sshの後に-tを追加してみてください。 10回のうち9回、これによりsshは仮想TTYをそれ自体に割り当て、実際の端末内で実行されているように見せかけます。コマンドについて他に何も変更する必要はありません。文字sshの後に-tオプションを追加し、ホストと渡されたコマンドを同じに保ちます。コマンドの後半でsshを実行する必要がある場合も、このことを覚えておく必要があります。

たとえば、 ssh -t user@linuxtest.example‘ssh user@linuxtest2.example’ としてフォーマットされたコマンドを実行したときに、これと同じ種類のエラーが発生した場合 これを防ぐには、最初のsshの後に-tオプションを保持する必要があります。後で2番目のコマンドを変更してデータを生成または消費する場合は、-tをまったく使用しないことに注意してください。たとえば、スクリプトの代わりにcatの実行を開始した場合、そのための端末を割り当てる必要がないため、-tをダンプできます。

方法2:visudoファイルにパッチを適用する

また、このエラーを引き起こす構成上の問題がある可能性があります。 sudo visudo を発行して、visudoファイルを変更します コマンドを実行し、このファイルを他の方法で編集することは絶対に避けてください。 ALL =NOPASSWDを特徴とする行の後に、実行するために管理者のパスワードを入力する必要のない種類のコマンドが続くはずです。

行の最後のコマンドを除いて、個々のコマンドはコンマで終了する必要があります。したがって、/ sbin / poweroff / sbin / start / sbin / stopのようなものがある場合は、これらすべてを1つのコマンドとして扱い、エラーをスローします。同様に、ssh経由で実行しようとしているコマンドが欠落している場合は、このエラーも発生します。エラーがまだ再現可能かどうかを確認する前に、必要な調整を行い、ファイルを保存してください。

サービスを再開してもエラーが発生する場合は、下の画像の次のコマンドを試してください。 PermitTTY行の後にyesという単語が含まれていることを確認してください。これがファイルの最後の行である場合は、その後に空白の改行があることを確認してください。 GNU nanoは、デフォルトでこのタスクを自動的に実行します。

修正:sudo:ttyが存在せず、askpassプログラムが指定されていない

エラーメッセージを再度再現する前に、関連するサービスを再起動する必要があります。


  1. 修正:ターゲットが指定されておらず、makefileが見つかりません。

    Ubuntu、Debian、Red Hatのいずれを使用している場合でも、makeというエラーが表示される場合があります。***ターゲットが指定されておらず、makefileが見つかりません。止まる。これはGNUMake全体に関連する一般的な問題であるため、無数のUnix実装で見られる可能性があります。これは、現在の作業ディレクトリにmakefileまたはMakefileというファイルがないことを意味します。幸い、これは簡単に修正できるエラーです。 方法1:現在のディレクトリでMakefileを見つける makeを実行してみてください。 現在のディレクトリでもう一度コマンドを実行して、同じ

  2. コマンド アンド コントロール サイバー攻撃とは?

    ハッカーは、コマンド アンド コントロール攻撃を使用して、ネットワーク全体を制御したり、個々のコンピューターをボット軍団に変えて、好きなことをしたりできます。これは最近、米国が侵害されたデバイスをハッキングしてウイルスをアンインストールすることで「Cyclops Blink」ボットネットを阻止したときに明らかでしたが、これらについて知っておくべきことは次のとおりです。 C2 攻撃は、ネットワーク全体を簡単に制御し、ハッカーにボットネット軍へのアクセスを許可する可能性があります。仕組みと、安全を確保するためにできることは次のとおりです。 コマンド アンド コントロール攻撃とは 悪意のある攻撃者