このエラーは引き続き発生し、この問題を解決するためにオンラインで議論されたいくつかの方法を試しましたが、そのうち何も効果がありませんでした。 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
答え1
sudo
パスワードの入力を求めるために機能する端末が必要です。にコマンドを渡すと、コマンドが端末をssh
必要としないと仮定し、転送しないと端末は生成されません-t
。バラよりSSH 内部 SSH が "stdin: not a tty" のため失敗します。より詳細な説明が必要です。
それでもパスワードを入力できない場合は、-t
Windowsで問題が発生した可能性があります。 WindowsコンソールはUnix端末を完全にエミュレートしません。 Cygwinアプリケーションは、そのような場合、端末を正しくエミュレートするのに少し難しいかもしれません。これが問題の場合は、ssh
ターミナルエミュレータで実行してください。コンソール2またはMintty(Cygwinディストリビューションに含まれる) - 参照Windows 7でCygwinでシェルを使用する最良の方法。
SSHパスワードをsudoに置き換えると、これは発生しません。 Sudoにはパスワードが必要です(NOPASSWD
sudoersファイルにタグを追加しない限り)。このオプションがsudoersファイルに設定されていNOPASSWD
ても、まだrequiretty
端末が必要です。
ルートアカウントにパスワードなしでログインする場合(通常はセキュリティの観点からは悪い考えです)、SSHを使用してルートアカウントにアクセスすることをお勧めします。バラよりSSH 内部 SSH が "stdin: not a tty" のため失敗します。(そして[email protected]
)[email protected]
。
答え2
答え3
ssh-server 設定ファイルを編集し、一番下に以下を追加します。
root# vim /etc/ssh/sshd_config
Match User newton
PermitTTY yes
答え4
関係があるかどうかはわかりませんが、sudoersファイルに「... NOPASSWD:/ xyz / script.shl」を含めたときに#!/bin/shellname
ファイルの上部にその行を含めるまで、対応するエラーメッセージが表示されました/xyz/script.shl
。