Szukam sposobu automatycznego zdefiniowania niektórych aliasów w mojej sesji na dowolnym serwerze, do którego ssh. Nie mogę umieścić ich w .bashrc
plikach na serwerze, ponieważ konta użytkowników, którymi się loguję, są udostępniane przez inne osoby, a poza tym jest ich kilkadziesiąt, a utrzymywanie skryptu na każdym komputerze byłoby bolesne. Wiem, że mógłbym użyć expect
automatycznego wpisywania aliasów, ale zastanawiałem się tylko, czy OpenSSH ma coś wbudowanego, co mogłoby być wykorzystane do osiągnięcia tego celu?
14
Możesz umieścić swoją konfigurację
.bashrc
i pozwolić jej na wykonanie tylko po zalogowaniu. Aby to umożliwić, możesz przekazać zmienną środowiskową przez ssh..bashrc
modyfikacjesshd_config
modyfikacje:.ssh/config
modyfikacje (po stronie klienta):.bashrc
modyfikacje (po stronie klienta):(niesprawdzony, ale powinien zrobić)
źródło
Ze strony podręcznika ssh (1) , jeśli utworzysz plik ~ / .ssh / rc , zostanie on wykonany PRZED wykonaniem powłoki logowania użytkownika, dając tym samym szansę na wykonanie zadań „wstępnej konfiguracji” przed zalogowaniem .. Podany przykład dotyczył zamontowania udziałów sieciowych przed zalogowaniem.
Jeśli nie chcesz używać pojedynczych plików ~ / .ssh / rc , możesz zrobić to samo z / etc / ssh / sshrc . Szybki test sprawdzający twoją nazwę użytkownika lub jakąś metodę identyfikacji może uniemożliwić innym nawet zauważenie, że to jest na miejscu.
/ etc / ssh / sshrc jest pozyskiwany TYLKO wtedy, gdy ~ / .ssh / rc nie istnieje, więc możesz skutecznie osiągnąć dwie warstwy złożoności.
źródło
Aliasy są definiowane i interpretowane przez powłokę.
Niestety nie ma sposobu,
ssh
aby przekazać je do zdalnej powłoki.Możesz napisać
ssh
opakowanie po stronie klienta, które tworzy fajne środowisko po drugiej stronie, ale nie byłoby ładnie.źródło
Jeśli to możliwe, zapisałbym mały skrypt, który inicjuje / definiuje wszystko, co chcesz na serwerze dostępnym zewsząd i wykonuję go po zalogowaniu na każdym serwerze.
źródło
Jednym z możliwych rozwiązań byłoby umieszczenie skryptu, który konfiguruje wszystko na serwerze WWW, do którego mają dostęp wszystkie pozostałe serwery.
Następnie każdy serwer powinien potrzebować małego skryptu, aby wykonać coś takiego:
W ten sposób musisz go zaktualizować tylko w jednym miejscu.
źródło
Spójrz na .ssh / config
Oto przykład https://lookherefirst.wordpress.com/2007/12/17/a-simple-ssh-config-file/
źródło