web-dev-qa-db-ja.com

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

私はこのエラーが発生し続け、これを修正するためにオンラインで議論されたいくつかの方法を試しましたが、どれも私のために働いていません。私はSSHキーを設定したので、_'ssh [email protected]'_を実行すると自動的にログインし、visudoでこのユーザーを'newton ALL=(ALL:ALL) ALL'に設定した後、_'newton ALL=NOPASSWD: /var/www/script.sh'_

残念ながら、Cygwinから_ssh [email protected] 'Sudo /var/www/script.sh'_を実行するたびに戻ります。 _-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
_
15
user391986

パスワードを要求できるように、Sudoを実行するためのターミナルを用意する必要があります。コマンドをsshに渡す場合、-tを渡さない限り、コマンドは端末を必要とせず、作成もしません。詳細については、 SSH内のSSHが「stdin:is not a tty」で失敗する を参照してください。

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

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

Rootアカウントまでのパスワードなしのログインが必要な場合(これは通常、セキュリティの観点からは良い考えではありません)、SSHを使用してrootアカウントに到達し、できれば2つのホップで到達します。 SSH内のSSHが「stdin:is not a tty」で失敗する[email protected]の場合は[email protected]を使用)を参照してください。

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

Visudoを変更する

Sudo visudo

コマンドのパスワードなしを有効にする次の行を使用します。パスは、各コマンドの後にカンマとスペースを含む複数のコマンドです。

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

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

enter image description here

3
Gajen Sunthara

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

root# vim /etc/ssh/sshd_config

Match User newton
    PermitTTY yes
1
ILMostro_7

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

NOPASSWD= /bin/x, /bin/y

私は次のように保存しました:

NOPASSWD= /bin/x /bin/y

つまり、コンマなし。今、私はしようとするとno tty present messageが表示されます

ssh Host 'Sudo x'
0
ottodidakt

関連しているかどうかはわかりませんが、sudoersファイルに「... NOPASSWD:/xyz/script.shl」が含まれていると、#!/bin/shellname行を/xyz/script.shlファイル。

0
LeeH

/ 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
0
Santosh Garole