Ubuntu Server #2: Połączenie SSH, użytkownicy, grupy, hasła, uprawnienia do plików i katalogów
Spisu treści:
- Wymagania wstępne
- Lokalizacja pliku konfiguracji SSH
- Struktura i wzorce plików konfiguracji SSH
- Przykład pliku konfiguracji SSH
- Przykład udostępnionego pliku konfiguracyjnego SSH
- Zastąp opcję pliku konfiguracyjnego SSH
- Wniosek
Jedną z opcji byłoby utworzenie aliasu bash dla każdego zdalnego połączenia z serwerem. Istnieje jednak inne, znacznie lepsze i prostsze rozwiązanie tego problemu. OpenSSH pozwala skonfigurować plik konfiguracyjny dla każdego użytkownika, w którym można przechowywać różne opcje SSH dla każdego zdalnego komputera, z którym się łączysz.
Ten przewodnik obejmuje podstawy pliku konfiguracyjnego klienta SSH i wyjaśnia niektóre z najczęstszych opcji konfiguracji.
Wymagania wstępne
Zakładamy, że korzystasz z systemu Linux lub macOS z zainstalowanym klientem OpenSSH.
Lokalizacja pliku konfiguracji SSH
Plik konfiguracyjny OpenSSH po stronie klienta nosi nazwę
config
i jest przechowywany w katalogu
.ssh
katalogu
.ssh
użytkownika.
Katalog
~/.ssh
jest tworzony automatycznie, gdy użytkownik uruchomi polecenie
ssh
po raz pierwszy. Jeśli katalog nie istnieje w twoim systemie, utwórz go za pomocą poniższej komendy:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
Domyślnie plik konfiguracyjny SSH może nie istnieć, więc może być konieczne utworzenie go za pomocą polecenia touch:
touch ~/.ssh/config
Ten plik musi być czytelny i zapisywalny tylko dla użytkownika i niedostępny dla innych:
Struktura i wzorce plików konfiguracji SSH
Plik konfiguracyjny SSH ma następującą strukturę:
Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value
Zawartość pliku konfiguracyjnego klienta SSH jest podzielona na sekcje (sekcje). Każda sekcja zaczyna się od dyrektywy
Host
i zawiera określone opcje SSH, które są używane podczas nawiązywania połączenia ze zdalnym serwerem SSH.
Wcięcie nie jest wymagane, ale jest zalecane, ponieważ ułatwia odczytanie pliku.
Dyrektywa
Host
może zawierać jeden wzorzec lub listę wzorców oddzieloną spacjami. Każdy wzorzec może zawierać zero lub więcej znaków spacji lub jeden z następujących specyfikatorów wzorca:
-
*- Dopasowuje zero lub więcej znaków. Na przykładHost *pasuje do wszystkich hostów, a192.168.0.*Pasuje do hostów w podsieci192.168.0.0/24.?- Dopasowuje dokładnie jedną postać. Wzór,Host 10.10.0.?pasuje do wszystkich hostów w10.10.0.zasięg.!- Użycie na początku wzoru neguje dopasowanie. Na przykładHost 10.10.0.* !10.10.0.5pasuje do dowolnego hosta w podsieci10.10.0.5z wyjątkiem10.10.0.5.
Klient SSH odczytuje sekcję pliku konfiguracyjnego według sekcji, a jeśli pasuje więcej niż jeden wzór, pierwszeństwo mają opcje z pierwszej pasującej sekcji. Dlatego na początku pliku należy podać więcej deklaracji specyficznych dla hosta, a na końcu pliku bardziej ogólne zastąpienia.
Możesz znaleźć pełną listę dostępnych opcji ssh, wpisując
man ssh_config
w swoim terminalu lub odwiedzając stronę manuala ssh_config.
Plik konfiguracyjny SSH jest również odczytywany przez inne programy, takie jak
scp
,
sftp
i
rsync
.
Przykład pliku konfiguracji SSH
Teraz, gdy omówiliśmy podstawową zawartość pliku konfiguracyjnego SSH, spójrzmy na następujący przykład.
Zazwyczaj podczas łączenia się ze zdalnym serwerem za pośrednictwem SSH należy podać nazwę zdalnego użytkownika, nazwę hosta i port. Na przykład, aby zalogować się jako użytkownik o nazwie
john
na hoście o nazwie
dev.example.com
na porcie
2322
z wiersza poleceń, wpisz:
ssh [email protected] -p 2322
Aby połączyć się z serwerem przy użyciu tych samych opcji, które podano w powyższym poleceniu, po prostu wpisując
ssh dev
, wstaw następujące wiersze do pliku
"~/.ssh/config
:
Host dev HostName dev.example.com User john Port 2322
Teraz, gdy wpiszesz
ssh dev
, klient ssh przeczyta plik konfiguracyjny i użyje szczegółów połączenia określonych dla hosta
dev
:
Przykład udostępnionego pliku konfiguracyjnego SSH
Ten przykład zawiera bardziej szczegółowe informacje na temat wzorców hosta i pierwszeństwa opcji.
Weźmy następujący przykładowy plik:
Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes
-
Gdy wpiszesz
ssh targaryen, klient ssh odczyta plik i zastosuje opcje od pierwszego dopasowania, którym jestHost targaryen. Następnie sprawdza kolejne strofy jeden po drugim pod kątem pasującego wzorca. Następnym pasującym jestHost * !martell(co oznacza wszystkie hosty opróczmartell) i zastosuje opcję połączenia z tej sekcji. Ostatnia definicjaHost *również pasuje, ale klient ssh weźmie tylko opcjęCompression, ponieważ opcjaUserjest już zdefiniowana w sekcjiHost targaryen.Pełna lista opcji używanych podczas wpisywania
ssh targaryenjest następująca:HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yesPodczas uruchamiania
ssh tyrellpasujące wzorce hosta to:Host tyrell,Host *ell,Host * !martelliHost *. Dostępne opcje to:HostName 192.168.10.20 User oberyn LogLevel INFO Compression yesHostName 192.168.10.50 User oberyn Compression yesDla wszystkich innych połączeń klient ssh użyje opcji określonych w sekcjach
Host * !martelliHost *.
Zastąp opcję pliku konfiguracyjnego SSH
Klient ssh czyta swoją konfigurację w następującej kolejności:
- Opcje określone z wiersza poleceń. Opcje zdefiniowane w
~/.ssh/configOpcje zdefiniowane w/etc/ssh/ssh_config.
Host dev HostName dev.example.com User john Port 2322
i chcesz użyć wszystkich innych opcji, ale połączyć się jako użytkownik
root
zamiast
john
po prostu określ użytkownika w wierszu poleceń:
ssh -o "User=root" dev
Opcja
-F
(
configfile
) pozwala określić alternatywny plik konfiguracyjny dla użytkownika.
Aby powiedzieć klientowi
ssh
aby zignorował wszystkie opcje określone w pliku konfiguracyjnym ssh, użyj:
ssh -F /dev/null [email protected]
Wniosek
Pokazaliśmy, jak skonfigurować plik konfiguracyjny użytkownika ssh. Możesz także skonfigurować uwierzytelnianie oparte na kluczu SSH i połączyć się z serwerami Linux bez wprowadzania hasła.
Domyślnie SSH nasłuchuje na porcie 22. Zmiana domyślnego portu SSH dodaje dodatkową warstwę bezpieczeństwa do twojego serwera, zmniejszając ryzyko automatycznych ataków.
terminal sshPomaga śledzić korzystanie z SharePoint
Firma Nintex produkuje komercyjnie dostępne oprogramowanie, które pomaga firmom śledzić użycie SharePoint w organizacji.
Firma Apple cicho zaleca korzystanie z oprogramowania antywirusowego
Firma Apple, która od dawna utrzymuje pozycję, w której system operacyjny jest odporna na problemy z bezpieczeństwem, zaleca użytkownikom instalację oprogramowania antywirusowego.
Nie można zapisać pliku, ponieważ nie można odczytać pliku źródłowego
Jeśli nie możesz pobrać i zobaczysz appdatalocaltemp nie można zapisać, ponieważ plik źródłowy nie mógł zostać odczytany w Firefoksie, tutaj jest to, co musisz zrobić.







