For at opnå en interaktiv SSH-session, hvor en specifik kommando køres ved login uden at få fejlen "Must be connected to a terminal", kan du følge disse trin:
ssh -t
flaget: SSH-flaget -t
tvinger tildeling af en pseudo-terminal, hvilket er nødvendigt for at køre interaktive kommandoer. Eksempel:
ssh -t user@hostname 'kommando'
.bashrc
: Hvis du vil køre en specifik kommando hver gang du logger ind, kan du tilføje den til din .bashrc
fil. Sørg for at tjekke, om sessionen er interaktiv:
if [[ $- == *i* ]]; then
kommando
fi
ssh -tt
for dobbelt terminal: I nogle tilfælde kan det være nødvendigt at bruge dobbelt -t
for at sikre, at en terminal tildeles korrekt:
ssh -tt user@hostname 'kommando'
expect
script: expect
er et værktøj, der kan automatisere interaktive applikationer. Du kan skrive et script til at håndtere login og kommandoeksekvering:
#!/usr/bin/expect
spawn ssh user@hostname
expect "password:"
send "your_password\r"
expect "$ "
send "kommando\r"
interact
PermitTTY
er sat til yes
i /etc/ssh/sshd_config
:
PermitTTY yes
Ved at følge disse trin kan du sikre, at en specifik kommando køres ved login i en interaktiv SSH-session uden at støde på fejlen "Must be connected to a terminal".
Har du brug for hjælp til SSH og terminalproblemer? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige hjælpere på få minutter. Uanset om det er opsætning, fejlfinding eller generelle spørgsmål, er der altid nogen klar til at assistere dig. Få løst dine tekniske udfordringer hurtigt og effektivt med Handyhand!