Interaktiv SSH-session: Undgå fejlen "Must be connected to a terminal" ved login

Hvordan kan der opnås en interaktiv SSH-session, hvor en specifik kommando køres ved login, uden at få fejlen "Must be connected to a terminal"?

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 bruge SSH-flaget -t, tilføje kommandoen i .bashrc, bruge dobbelt -t, anvende et expect script eller konfigurere SSH-serveren korrekt.

Hvordan kan der opnås en interaktiv SSH-session, hvor en specifik kommando køres ved login, uden at få fejlen "Must be connected to a terminal"?

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:

  • Brug 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'
  • Tilføj kommandoen i .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
  • Brug 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'
  • Brug 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
  • Konfigurer SSH-serveren: Sørg for, at SSH-serveren er konfigureret til at tillade pseudo-terminaler. Dette kan gøres ved at sikre, at 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".

Opret din første opgave på få minutter

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

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker