ファイル転送中のSSH SCPエラーメッセージ: "Stdin:not a tty"

ファイル転送中のSSH SCPエラーメッセージ:

私はMacbook SSH端末を使用し、RSAキーペアを生成し、id_rsa.pub承認された権限でリモートでアップロードしています。リモートApache Webサーバーに接続できます。問題なくWebサーバー上でファイルを作成、開く、移動、修正、および予備チェックを管理でき、エラーメッセージも生成されません。

scp驚くべきことに、私のデスクトップのフォルダや文書をリモートサーバーに転送することはできません。また、scpリモートサーバーのフォルダや文書をデスクトップに転送することはできません。エラーメッセージが表示されるたびに:

標準入力:ttyではありません

リモート Web サーバーとの間で送受信されるコマンドは、scp絶対または相対ファイルの場所参照では機能しません。

私の標準構文は次のとおりです。

ローカルホストから:

scp -rp ~/Desktop/foldername [email protected]:~/public_html

リモートホストから:

scp -rp [email protected]:~/public_html/foldername ~/Desktop/

エラーメッセージに問題があるようですstdin: is not a tty

どうなりますか?

このエラーが原因でファイル転送がブロックされた場合、どうすれば解決できますかstdin: is not a tty

ベストアンサー1

その理由は、ターゲットサーバーのログインスクリプトの1つがstty...ターミナル属性を設定するために使用されるためです。 tty がない場合、コマンドは失敗します。つまり、を使用して接続するときですscp

解決策は、stty対話型セッションがある場合にのみ実行されることを保護することです。これを行う方法はいくつかあります。以下はbash / sh型シェルのいくつかの例です。

醜い:

stty ... >/dev/null 2>&1

私のために働いた:

test -n "$PS1" && stty ...

尊敬されるSEの他の場所:

# Check for a bash login shell
case $- in
  *i*) stty ... ;;
esac

おすすめ記事