Telnetを使用するには、Ctrl + Alt + DelとFキーを使用してください。

Telnetを使用するには、Ctrl + Alt + DelとFキーを使用してください。

シリアル経由でのみサーバーにアクセスでき、Telnetを使用してBIOSにアクセスしようとしています(これは直接シリアルではなくリモートシリアル接続です)。

Ctrlもちろん、私のTelnetはサーバーが起動していないことを見ることができるので、サーバーに到達しますが++で再Alt起動したいのですが、Delこれは私のローカルコンピュータでキャプチャされます。 Fキーも私のローカルコンピュータに閉じ込められているようです。

CtrlRHEL Telnetアプリケーションの場合、++を発行するAlt基本的な方法は何ですかDel

RHEL Telnetアプリケーションの場合、Fキーを発行する基本的な方法は何ですか?

答え1

ほとんどのBIOSは、さまざまなバージョンのvt100キーボードエスケープシーケンスをファンクションキーとして受け入れます。例えば、Dellコンソールリダイレクトガイド同等の項目のリスト:

F7     <Esc> <Shift>ov  or   <Esc> [ 1 8 ~

また、いくつかの追加の非標準シーケンスもあります。

<Ctrl><Alt><Del>   <Esc> <Shift>r <Esc> r <Esc> <Shift> r

(もちろん、<Shift>ov入力することもできますOV)。残念ながら、これらのキー入力シーケンスは通常、文字間で許容されるタイムアウトが小さいため、非常に迅速に入力する必要があります。

Telnetを介してこれらのシーケンスを送信する1つの方法は、端末エミュレータにある種のバインディング時に文字列を生成させることです。これは端末エミュレータによって大きく異なります。

もう1つの方法は、Telnet接続を切断してコマンドを実行して、新しいTelnet接続を介してシーケンスのみを送信することです。たとえば、テスト目的で、この予想されるスクリプトはログインを実行し、F7シーケンス(\033\[18~)を送信します。

#!/bin/expect -f
spawn telnet localhost
expect login:
send myuserid\r
expect Password: 
send mypassword\r
expect "\$ "
send "echo hi\r"
expect "hi"
expect "\$ "
send "dd count=6 bs=1 | od -c\r"
send "\033\[18~\r"
expect "\$"
send "echo hi\r"
expect "hi"
send_user "done\n"

もちろん、BIOSにログインする必要はありませんので、ただログインしてください。

#!/bin/expect -f
spawn telnet remotebios
expect "Connected to "
send "\033\[18~"

より簡単な方法を試してみることもできます。

echo -e '\033[18~' | nc remotebios 23

関連情報