私はこのエラーが発生し続け、これを修正するためにオンラインで議論されたいくつかの方法を試しましたが、どれも私のために働いていません。私は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
_
パスワードを要求できるように、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]
を使用)を参照してください。
Ssh-server構成ファイルを編集し、下部に追加します。
root# vim /etc/ssh/sshd_config
Match User newton
PermitTTY yes
/ etc/sudoersでミスをしたときにこのエラーに直面しました。このように複数のコマンドを指定する代わりに:
NOPASSWD= /bin/x, /bin/y
私は次のように保存しました:
NOPASSWD= /bin/x /bin/y
つまり、コンマなし。今、私はしようとするとno tty present messageが表示されます
ssh Host 'Sudo x'
関連しているかどうかはわかりませんが、sudoersファイルに「... NOPASSWD:/xyz/script.shl」が含まれていると、#!/bin/shellname
行を/xyz/script.shl
ファイル。
/ 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