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".
Spar dig selv for besvær og kom igennem din to-do liste i dag
1
Beskriv din opgave
2
Modtag bud
3
Få løst din opgave
Møbelsamling
Hjælp med at samle Ikea klædeskab
Maler
Klargøring af lejlighed til flyttesyn
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Havearbejde
Beskæring af 4 større træer
IT support
Geninstallering af windows + programmer
Elektriker
Installation af Sonos musikanlæg i hus
Rengøring
Ugentlig rengøring af lejlighed (114kvm)
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Elektriker
Opsætning af lamper i stue og soveværelse
Catering
3-retters menu til 14 mennesker