シリアルポート経由で既知の固定ユーザー名とパスワードを使用して、Linux開発ボードにログインする必要がよくあります。
通常のコマンドは次のとおりです。
screen /dev/ttyS0 115200
そしてscreen
、セッション内は次のようになります。
<enter>
somehost login: root<enter>
Password: root<enter>
user@host#
このログイン手順を自動化して、毎回ユーザー名とパスワードを入力する必要がないようにする方法は?
expect
必要に応じて使用することもできます。私はもう試した:
expect -c "spawn screen /dev/ttyS${1:-0} ${2:-115200}; send "\r"; expect \"* login: \"; send \"root\"; expect \"Password: \"; send \"root\"; interact"
しかし、私のexpect
スキルはそれを完全にはカットせず、これはハングします。
また、ロゴを作成してすぐにログインすると、2回目はパスワードを要求せず、プロンプトに直接移動します。
user@host#
そのため、スクリプトでもそれを考慮する必要があります。参照:https : //stackoverflow.com/questions/9464887/modify-expect-based-ssh-script-to-work-on-machines-that-dont-require-a-password
SSHに関する同様の質問:https : //stackoverflow.com/questions/459182/using-expect-to-pass-a-password-to-ssh
-X
簡単に試してみましたが、動作しませんでした。後でもう少し試すかもしれません。
screen -X at "ttyS0" stuff "root\n$PASSWORD\n"
しかし、私はそれをテストするためのシリアルポートを持っていません。