sudo over ssh:ttyが存在せず、askpassプログラムが指定されていません


15

このエラーが引き続き発生するので、これを修正するためにオンラインで議論されたいくつかの方法を試してみましたが、何も機能していません。私が実行したとき、私は、セットアップのSSHキーがそうしている'ssh newton@host.com'、それは自動的に私をログに記録し、私はまた、このユーザーを設定しているvisudoことを'newton ALL=(ALL:ALL) ALL' 、私は、その後も追加しようとしました'newton ALL=NOPASSWD: /var/www/script.sh'

残念ながら、ssh newton@host.com 'sudo /var/www/script.sh'Cygwinから実行するたびに戻ってきます。追加しようとし-t -tましたが、パスワードの入力を求められます。

total size is 21209180  speedup is 314.69
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts

これはCygwinに固有のものではありません。ssh example.com sudo echo helloあるLinuxシステムから別のLinuxシステムへの使用でも同じ問題が発生します。それに応じてタイトルを更新しました。また、Unixサイトへの移行に関する質問にフラグを立てました。
キーストンプソン

回答:


10

sudoパスワードの入力を求めることができるように、実行可能な端末を用意する必要があります。にコマンドを渡すと、を渡さsshない限り、コマンドは端末を必要とせず、端末を作成しません-t。詳細な説明については、「stdin:is a tty」SSHが失敗する内部のSSHを参照してください。

でもパスワードを入力できない場合-tは、Windowsに問題がある可能性があります。Windowsコンソールは、unix端末を完全にエミュレートしません。これらの状況では、Cygwinアプリケーションがターミナルを適切にエミュレートするのに多少の困難があるかもしれません(それについてはわかりません、注意してください)。それが問題であれば、Console2やMintty(Cygwinディストリビューションに含まれています)sshなどのターミナルエミュレーター内で実行します— Windows 7でCygwinでシェルを使用する最良の方法を参照してください。

SSHパスフレーズがsudoへの認証のためにパスワードを置き換えると予想した場合、それは起こりません。sudoにはパスワードが必要です(NOPASSWDsudoersファイルにタグを追加しない限り)。sudoersファイルでオプションが設定されているNOPASSWD場合でも、まだ端末が必要であることに注意してくださいrequiretty

ルートアカウントまでパスワードなしでログインしたい場合(通常、セキュリティの観点からはお勧めできません)、SSHを使用して、できれば2ホップでルートアカウントにアクセスしてください。「stdin:is a tty」root@host.comfor SSHで失敗するSSH内のSSHを参照してくださいotheruser@computertwo.com


3

nodejsコマンド/バイナリのパスワードなしを有効にしましょう。

visudoを変更する

sudo visudo

次の行を使用して、コマンドのパスワードなしを有効にします。Passは複数のコマンドで、各コマンドの後にコンマとスペースがあります。

<user name> ALL = NOPASSWD: /usr/local/bin/node

sunthara ALL = NOPASSWD: /usr/local/bin/node

ここに画像の説明を入力してください


1

ssh-server構成ファイルを編集し、下部に追加します。

root# vim /etc/ssh/sshd_config

Match User newton
    PermitTTY yes

動作しません:service sshd restart=>/etc/ssh/sshd_config: line 91: Bad configuration option: User
kiltek

変更する必要がある場合がありますMatch User newton
ILMostro_7

1
いいえUser、設定オプションが存在しないため、sshdファイルに書き込むことができません。(少なくとも私のシステムUbuntu 16.04の場合)
-kiltek

マンページから:「MatchIntroduces条件付きブロック。Match行のすべての条件が満たされている場合、次の行のキーワードは、別のMatch行または最後のいずれかまで、configファイルのglobalセクションの設定を上書きしますMatchの引数は、1つ以上の条件とパターンのペアです。利用可能な条件は、User、Group、Host、およびAddressです。一致パターンは、単一のエントリまたはコンマ区切りリストで構成でき、ワイルドカードと否定を使用できますssh_config(5)のPATTERNSセクションで説明されている演算子。」
ILMostro_7

私は見てはいけないMatch...あなたの答えにブロックを
kiltek

0

/ etc / sudoersを間違えたときにこのエラーに直面しました。このような複数のコマンドを指定する代わりに:

NOPASSWD= /bin/x, /bin/y

として保存しました:

NOPASSWD= /bin/x /bin/y

すなわち、コンマなし。今、私はしようとするとno tty presentメッセージを受け取ります

ssh host 'sudo x'

0

それが関連しているかどうかはわかりませんが、sudoersファイルに「... NOPASSWD:/xyz/script.shl」が含まれていた場合#!/bin/shellname/xyz/script.shlファイルの先頭に行を含めるまでエラーメッセージが表示されました。


0

/ etc / sudoersファイル内の以下のパラメーターにコメントすると助けになりました。

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
Defaults    requiretty

#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults   !visiblepw

--->パラメータを次のようにコメントアウトします

#Defaults    requiretty
#Defaults   !visiblepw
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.