.ssh / config sposób określania przydziału pseudo-tty i wykonywania poleceń


13

Czy istnieje sposób na określenie w .ssh/configpoleceniu takim jak:

ssh -t remote-host "screen -dR screen_name"

dzięki czemu mogę łatwo uzyskać dostęp do screensesji zdalnej za pomocą ssh remote-host?

W tej chwili rozwiązałem ten problem za pomocą skryptu niestandardowego:

$ cat ~/bin/sssh 
#!/bin/sh

/usr/bin/ssh -t $1 "screen -dR ab"

~/binpozostaje pierwszy $PATH, ale jest nieelastyczny i brzydki.

Chciałbym również znaleźć sposób na implementację autouzupełniania hosta dla mojego skryptu niestandardowego.


Chciałbym zamienić $1z $@. Następnie możesz dodać więcej opcji, nie tylko nazwę hosta. Aby zakończyć, spróbuj wykonać . /usr/share/bash-completion/completions/ssh, a następniecomplete -F _ssh sssh
Alex Stragies,

Odpowiedzi:


17

Aby przydzielić tty tak jak w przypadku -topcji, umieść RequestTTY forcego w pliku konfiguracyjnym ssh (zwykle w ~/.ssh/config). Aby zawsze wykonać polecenie na serwerze po nawiązaniu połączenia, wprowadź RemoteCommand COMMANDpozycję, w której COMMANDznajduje się polecenie, które chcesz uruchomić podczas połączenia. Aby sprawdzić inne opcje, sprawdź man ssh_config.

Host remote-host
    Hostname my.server.com
    User imauser
    IdentityFile /path/to/identity_file
    RequestTTY force
    RemoteCommand screen -dR screen_name


1

Twierdziłbym, że jest to najbardziej elastyczny sposób. Skrypt umożliwia konfigurowanie parametrów, dodawanie warunków, zmianę polecenia w razie potrzeby, wszystko na podstawie danych wejściowych.

Istnieją sposoby „wymuszenia” polecenia authorized_keys. Ale nie znam sposobu wymuszenia alokacji tty poza wierszem poleceń lub wymuszenia polecenia na zdalnym serwerze z plików konfiguracyjnych po stronie lokalnej.

Ja sam mam skrypt, który skanuje plik konfiguracyjny, sprawdza DNS względem różnych domen i ustawia ciąg tytułu emulatora terminala. Nazywam to z ekranu w moim systemie lokalnym ( Ctrl-a g).


0

Uwaga: RemoteCommandrozpoczyna pracę z OpenSSH 7.6 . We wcześniejszej wersji (tj. Bieżący debian 9.9) klient ssh przestanie działać poprawnie (przynajmniej z git pull).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.