SSHを使用して1台のコンピュータに接続し、SSHを使用して他の2台のコンピュータに接続しようとしましたが、このエラーが発生します。
ssh [email protected] 'ssh [email protected]'
stdin: is not a tty
なぜ?
ベストアンサー1
デフォルトでは、SSHを使用してリモートシステムでコマンドを実行すると、テレタイププライターリモートセッションに割り当てられていません。これにより、TTY問題を処理することなくバイナリデータなどを転送できます。で実行されるコマンドに提供される環境ですcomputerone
。
ただし、リモートコマンドなしでsshを実行すると、おそらくシェルセッションが実行されているため、TTYが割り当てられます。これはコマンドで予想されるものですが、前の説明のためにコマンドに使用できるTTYはありません。ssh [email protected]
top でシェルを使用するには、computertwo
次のようにします。これにより、リモート実行中にTTY割り当てが強制されます。
ssh -t [email protected] 'ssh [email protected]'
これは通常、SSH チェーンの最後でシェルまたは他の対話型プロセスを実行する場合に適しています。データを転送する場合、追加は適切でも必須ではありませんが、-t
すべてのsshコマンドにはデータ生成または消費コマンドが含まれます。たとえば、次のようになります。
ssh [email protected] 'ssh [email protected] "cat /boot/vmlinuz"'