SSH - Jak dołączyć „-t polecenie” do pliku ~ / .ssh / config

13

Używam ~/.ssh/configpliku, dzięki czemu mogę łatwo wprowadzić ssh myserveri podać poprawną nazwę użytkownika, port, nazwę hosta, plik tożsamości itp.

Jednak w przypadku wielu serwerów pierwszą rzeczą, którą robię, jest su -zalogowanie się jako root. Mogę zrobić to wszystko w jednej komendy w linii poleceń tak: ssh myserver -t su -. Czy jest coś, co mogę dodać do mojego ~/.ssh/configpliku, co zrobi to za mnie? Chcę być w stanie to zrobić ssh myserver-rooti to samo, co ssh myserver -t su -?

Wiem o PermitRootLogintym, to jest wyłączone dla tego serwera i niechętnie go włączam. Wolałbym raczej sprawdzić, czy można to zrobić za pomocą ssh po stronie klienta.

Rory
źródło

Odpowiedzi:

10

Myślę, że podejdę do tego z innej strony - użyj 'command =' we wpisie klucza publicznego w twoim pliku ~ / .ssh / Author_keys na zdalnym serwerze, aby uruchomić polecenie "su -".

Następnie po prostu użyj / odwołaj się do klucza prywatnego w swoim pliku ~ / .ssh / config (opcja IdentityFile) dla każdego hosta / aliasu („root-serwer-serwer”), który chcesz w ten sposób pracować.

Opcje dostępne w uprawnionych kluczach (5) są udokumentowane w sshd (8).

jrg
źródło
Tak, robi dokładnie to, czego chcę. :) Mam pełną kontrolę nad plikiem ~ / .ssh / autoryzowany_klucz na serwerze i nie mam problemu ze zmianą tego.
Rory,
3

Dlaczego nie dodać skryptu do katalogu na swojej ścieżce (lub jego aliasu) o nazwie rssh, np .:

#!/bin/bash
ssh $1 -t 'su -'

To jest po prostu:

rssh myServer
Kyle Brandt
źródło
1

Nie znalazłem żadnej opcji konfiguracji dla alokacji pseudo-tty w źródle OpenSSH.

Ale mogę dać poradę dotyczącą PermitRootLogin, ustaw ją na:

PermitRootLogin without-password

I zezwalaj tylko na logowanie użytkownika root za pomocą kluczy SSH

rkthkr
źródło
1

Co powiesz na dodanie czegoś takiego w ~ / .bashrc po stronie serwera?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi
Shawn Chin
źródło
1

Najlepszą odpowiedzią jest prawdopodobnie kombinacja rkthkr i jrg . Użyj, PermitRootLoginaby wymagać klucza, a następnie umieść klucz ze commandsłowem kluczowym tylko w pliku autoryzowanych kluczy użytkownika root.

mwalling
źródło