直接sshを使用すると、サーバーが正しく実行され、ログアウトする前に必要な数のコマンドを実行できます。ssh [email protected]
サーバーのIPアドレスは、私のネットワーク設定で定義されているものと非常に似ていますが、最後のオクテットが変わりました。次のコマンドは、ifconfig
正しいIPアドレスを読み取り、生成します。
ifconfig Netcon | grep "inet " | printf `awk '{ print $2 }'` | tail -c 1 | ssh -tt [email protected].`tr 12 21`
SSH はサーバーのパスワードとログインの入力を求めるプロンプトで、新しいホスト名を表示します。しかし、私が入力したものは何も実行されません。
Last login: Fri Feb 28 09:07:38 2020 from 192.168.13.2
[email protected]:~$ ping google.com
cd
asdasdwjawdi
-tt
SSH呼び出しからそれを削除すると、次のようにログインが失敗します。
tput: No value for $TERM and no -T specified
ベストアンサー1
あなたは混乱しています。標準入力ssh
最終オクテットを生成するために必要なコマンドと処理。デフォルトでは、あなたのコマンドは次のようになります。
echo 1.2.3.4 | ssh -tt user@`tr 12 21`
tr
これにより、コマンド(パイプ)の入力が受信されているので、echo
端末に接続されていないことがわかります。また、ssh
パイプから入力を読み取ろうとします。
私の考えであなたが望むのはこれです。
ip=$(ifconfig eth0 | awk '/inet / { split($2, ip, /\./); printf "%d.%d.%d.2\n", ip[1], ip[2], ip[3] }')
ssh "user@$ip"
または一時変数のない行で
ssh "user@$(ifconfig eth0 | awk '/inet / { split($2, ip, /\./); printf "%d.%d.%d.2\n", ip[1], ip[2], ip[3] }')"