RequestTTY force
私のSSH設定ファイルでいくつかの重要な理由でそれを有効にする必要があります。現在、私の設定ファイルは次のとおりです。
Host x.x.x.x
HostName yyyy
StrictHostKeyChecking no
RequestTTY force
IdentityFile ~/path/id_rsa
ただし、コマンドを実行するとscp
完了しますが、ターゲットパスに空のファイルが生成され、以下は生成されるログです。
debug2: channel 0: read<=0 rfd 4 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
RequestTTY force
ただし、構成ファイルのオプションをコメントアウトすると、正しく実行され、ファイルが正しくコピーされます。
なぜこのような問題が発生しますか?オプションを無効にしなくてもRequestTTY force
ファイルが正しくコピーされるように回避策を提供できる人はいますか?
ベストアンサー1
考えられる解決策はさまざまです。
sudo
ttyが不要になるように設定できますRequireTTY
。/etc/sudoers
- これらの特定のケースでは、必要に応じてコマンドラインからtty割り当てを強制することができます。
ssh -tt host command
- コマンドラインオプションを使用してTTYを割り当てないように指定できます
scp
。または-T
-o RequestTTY=no
scp -T file host:path/
scp -o RequestTTY=no file host:path/
これが起こる理由はすでに説明されています。 TTY制御文字はバイナリプロトコルを壊し、その逆も同様です。