---
title: 'Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config | Zomro'
description: 'Plik .ssh/config odgrywa ważną rolę w strukturyzacji listy hostów i ułatwieniu dostępu do nich podczas zarządzania wieloma zdalnymi serwerami.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_1_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/pl/)
  * [Przydatne artykuły](https://zomro.com/pl/blog/articles/)
  * Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config 



# Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config

11-11-2024

Aby uczynić proces wprowadzania poleceń umożliwiających połączenie z serwerami szybszym i wygodniejszym, istnieje przydatna funkcja automatycznego uzupełniania poleceń SSH. Funkcja ta wykorzystuje pliki konfiguracyjne. Najlepiej i najefektywniej jest skonfigurować automatyczne uzupełnianie dla węzłów sieciowych określonych w .ssh/config, co znacznie upraszcza połączenie z potrzebnymi serwerami. W tym materiale omówimy, jak zrealizować tę konfigurację w systemach operacyjnych Linux i macOS.

Plik .ssh/config odgrywa ważną rolę w strukturyzowaniu listy hostów i ułatwieniu dostępu do nich podczas zarządzania wieloma zdalnymi serwerami. Jednak ciągłe ręczne wprowadzanie nazw serwerów za każdym razem jest nieefektywne, dlatego można uprościć ten proces, konfigurując automatyczne uzupełnianie.

## **.ssh/config - co to jest?**

Dokument tekstowy .ssh/config to plik, który zawiera ustawienia dla połączeń SSH. Dzięki .ssh/config zyskujesz możliwość wykorzystania kluczy, oznaczenia standardowych portów, ustawienia aliasów dla serwerów oraz określenia innych parametrów połączenia. Każdy host w tej konfiguracji może mieć swój unikalny alias, co upraszcza proces połączenia SSH.

Plik .ssh/config można otworzyć w ulubionym edytorze tekstu. Może to być na przykład gedit, vim lub nano. Jeśli dokument .ssh/config nie istnieje, podczas używania polecenia zostanie automatycznie utworzony. 

### **Jak używać pliku na przykładzie wspomnianych edytorów graficznych?**

**Edytor nano:**
    
    
    nano ~/.ssh/config

**Przykład vim:**
    
    
    vim ~/.ssh/config

**Przykład gedit (dla miłośników interfejsu graficznego):**
    
    
    gedit ~/.ssh/config &

W przypadku braku edytora graficznego, instalację można przeprowadzić za pomocą następującego polecenia:
    
    
    sudo snap install gedit

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_1_q50.jpg)

**Przykład pliku tekstowego .ssh/config:**
    
    
    nano ~/.ssh/config
    
    
    Host example-server
    
    
    HostName 192.168.1.100
    
    
    User user1
    
    
    Port 2222

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config-1](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_2_q50.jpg)

Następnie, aby uniknąć dalszego ręcznego wprowadzania pełnego polecenia do połączenia:
    
    
    ssh user1@192.168.1.100 -p 2222

Można użyć następującej opcji:
    
    
    ssh example-server

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config-2](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_3_q50.jpg)

## **Po co potrzebne jest automatyczne uzupełnianie?**

Dzięki kilku praktycznym zaletom, które znacznie zwiększają wygodę pracy, funkcja automatycznego uzupełniania SSH w Ubuntu zmniejsza czas potrzebny na wprowadzanie poleceń i poprawia interakcję z zdalnymi serwerami. Oto główne argumenty na rzecz automatycznego uzupełniania:

  * **Uproszczenie pracy**. Automatyczne uzupełnianie umożliwia szybsze wprowadzanie potrzebnych poleceń, co jest szczególnie ważnym elementem podczas pracy z długimi ścieżkami lub skomplikowanymi poleceniami. Nie musisz już ciągle wpisywać ich ręcznie.



Przyjrzyjmy się sytuacji, gdy musisz wprowadzić adres konkretnego hosta. Aby uniknąć wpisywania następującej wersji:
    
    
    ssh user@long-and-complicated-server-name.com

Wystarczy wpisać:
    
    
    ssh use[TAB]

Po tym imię zostanie automatycznie uzupełnione przez system do pełnej wartości.

  * **Zmniejszenie błędów**. Dzięki automatycznemu uzupełnianiu zmniejsza się prawdopodobieństwo literówek i błędnego wprowadzania skomplikowanych i długich poleceń, co prowadzi do rzadszych awarii. Automatyczne wprowadzanie oferuje poprawne opcje, odwołując się do wcześniej skonfigurowanych hostów w .ssh/config



  * **Optymalizacja pracy przez SSH.** Automatyczne uzupełnianie rozpoznaje wpisy z parametrami połączenia do różnych hostów, jeśli twój plik .ssh/config jest już skonfigurowany, a następnie zaproponuje te wpisy podczas pisania polecenia ssh. Dzięki takiemu systemowi automatycznego uzupełniania można szybko znaleźć już skonfigurowane serwery i połączyć się z nimi.



Jak to może być zapisane w pliku .ssh/config:
    
    
    Host myserver
    
    
    HostName myserver.com
    
    
    User myusername
    
    
    Port 2222

W rezultacie, opierając się na twoich konfiguracjach, po wpisaniu ssh myser[TAB], system zaproponuje ci opcje automatycznego uzupełnienia.

  * **Łatwość pracy z wieloma serwerami.** Przy interakcji z wieloma serwerami funkcja automatycznego uzupełniania znacznie ułatwia proces zarządzania. Nie ma potrzeby zapamiętywania każdej kombinacji dla domen lub adresów IP — można polegać na konfiguracji dokumentu .ssh/config, a system samodzielnie zaproponuje możliwe opcje.



  * **Oszczędność czasu**. Podczas korzystania z automatycznego uzupełniania SSH użytkownicy mogą zaoszczędzić czas na połączenie z serwerem, nie wprowadzając całego polecenia od zera, a po prostu powielając już istniejące polecenia lub ścieżki. Funkcja ta jest niezwykle przydatna dla tych, którzy regularnie korzystają z wielu zdalnych serwerów, na przykład programistów i administratorów systemów. 



  * **Zwiększenie wydajności** : Automatyczne uzupełnianie pozwala skupić się na ważniejszych zadaniach, minimalizując rutynowe działania podczas pracy ze skryptami i w terminalu. Ponadto automatyczne uzupełnianie można stosować w innych przypadkach, jeśli wszystko jest poprawnie skonfigurowane, może to znacznie zmniejszyć ilość wykonywanej pracy i zwiększyć wydajność.



Te zalety czynią automatyczne uzupełnianie niezastąpionym narzędziem dla ekspertów i nowicjuszy pracujących z SSH w Ubuntu.

### **Konfiguracja automatycznego uzupełniania bash-completion dla SSH**

**Pierwszy etap: konfiguracja**

Aby skonfigurować automatyczne uzupełnianie SSH, potrzebujesz zainstalowanego pakietu bash-completion. Pakiet ten jest zazwyczaj preinstalowany w nowoczesnych dystrybucjach Linuxa, ale jeśli go nie ma, można go zainstalować.

### **Instalacja bash-completion na platformach Ubuntu i Debian:**
    
    
    sudo apt update
    
    
    sudo apt install bash-completion

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config-3](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_4_q50.jpg)

### **Instalacja bash-completion na platformach CentOS i Fedora:**
    
    
    sudo yum install bash-completion

Dla Arch Linux:
    
    
     sudo pacman -S bash-completion

**Aktywacja:**

Po zakończeniu instalacji należy sprawdzić aktywność automatycznego uzupełniania, dodając do pliku .bashrc lub .bash_profile następujący wiersz:
    
    
    nano ~/.bashrc
    
    
    if [ -f /etc/bash_completion ]; then
    
    
      . /etc/bash_completion
    
    
    fi

Po sprawdzeniu aktywacji uzupełnienia zrestartuj terminal lub użyj następującego polecenia:
    
    
    source ~/.bashrc

### **Drugi etap: Konfiguracja automatycznego uzupełniania SSH**

Na drugim etapie konfiguracji należy dodać automatyczne uzupełnianie do hostów w dokumencie .ssh/config.

Aby przeprowadzić tę procedurę, użyj skryptu uzupełniającego:

W folderze /etc/bash_completion.d/ twórz lub edytuj już istniejący plik automatycznego uzupełniania. Następujący skrypt pomoże automatycznie załadować wymagane hosty z dokumentu .ssh/config.

Utwórz plik /etc/bash_completion.d/ssh:
    
    
    sudo nano /etc/bash_completion.d/ssh

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config-4](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_5_q50.jpg)

Wklej następujący kod do otwartego pliku:
    
    
    _ssh_hosts() {
    
    
     COMPREPLY=($(compgen -W "$(awk '/^Host / {print $2}' ~/.ssh/config)" -- "${COMP_WORDS[COMP_CWORD]}"))
    
    
    }
    
    
    complete -F _ssh_hosts ssh

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config-5](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_6_q50.jpg)

Ten skrypt wyciąga nazwy hostów z pliku .ssh/config i przekazuje je do automatycznego uzupełniania.

Zapisz plik i zamknij edytor.

Aktywuj zmiany:
    
    
    source /etc/bash_completion.d/ssh

Teraz przy wprowadzaniu polecenia ssh i rozpoczynaniu wpisywania nazwy hosta system zaproponuje opcje automatycznego uzupełniania.

**Sprawdzenie działania**

Aby sprawdzić działanie automatycznego uzupełniania, po prostu zacznij wpisywać polecenie SSH i naciśnij klawisz Tab. Jeśli wszystko jest poprawnie skonfigurowane, system zaproponuje listę dostępnych hostów z twojego pliku .ssh/config.

Przykład:
    
    
    ssh exa<Tab>

Wynik:
    
    
    ssh example-server

  
![Konfiguracja automatycznego uzupełniania poleceń SSH z pliku .ssh/config-6](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/11/screenshot_7_q50.jpg)

**Wsparcie dla automatycznego uzupełniania w innych powłokach**

Automatyczne uzupełnianie możliwe jest nie tylko dla Bash. Jeśli używasz innych powłok, takich jak Zsh, automatyczne uzupełnianie również można skonfigurować.

**Konfiguracja automatycznego uzupełniania dla Zsh**

Dla użytkowników Zsh proces konfiguracji jest nieco inny. Musisz w pliku .zshrc wpisać poniższą linię, aby upewnić się, że automatyczne uzupełnianie jest aktywne:
    
    
    autoload -U compinit && compinit 

Następnym krokiem jest stworzenie funkcji automatycznego uzupełniania:
    
    
    _ssh_hosts_zsh() {
    
    
        local hosts
    
    
    hosts=(${(f)"$(awk '/^Host / {print $2}' ~/ ssh/config)"})
    
    
       _describe -t hosts 'SSH Hosts' hosts
    
    
    }
    
    
    compdef _ssh_hosts_zsh ssh

Po wykonaniu tych czynności zapisz i zrestartuj swój terminal:
    
    
    source ~/.zshrc

Po pomyślnym zakończeniu całego procesu instalacji, automatyczne uzupełnianie w Zsh będzie gotowe do użycia.

### **Interakcja z wieloma plikami konfiguracyjnymi**

W niektórych sytuacjach może być przydatne rozdzielenie ustawień dla SSH na kilka plików. Na przykład może to być związane z różnymi grupami serwerów. W takim przypadku konfiguracja automatycznego uzupełniania powinna uwzględniać wszystkie pliki konfiguracyjne.

Aby to zrobić, można dodać kilka źródeł konfiguracji:
    
    
    _ssh_hosts() {
    
    
     COMPREPLY=($(compgen -W "$(awk '/^Host / {print $2}' ~/.ssh/config ~/.ssh/config.d/*)" -- "${COMP_WORDS[COMP_CWORD]}"))
    
    
    }
    
    
    complete -F _ssh_hosts ssh

Teraz automatyczne uzupełnianie będzie działać dla wszystkich hostów określonych we wszystkich plikach w katalogu
    
    
    ~/.ssh/config.d/

**Podsumowanie**

Konfiguracja automatycznego uzupełniania poleceń SSH dla węzłów określonych w dokumencie .ssh/config jest kluczowym krokiem, który pozwala zwiększyć efektywność pracy oraz zmniejszyć prawdopodobieństwo błędów podczas interakcji z zdalnymi serwerami. Dzięki temu trybowi uprościsz sobie połączenia i zyskasz możliwość skupienia się na pracy z kluczowymi zadaniami, niezależnie od użycia Zsh lub Bash.

Ważne jest, aby nie zapominać o utrzymywaniu pliku tekstowego .ssh/config w aktualnym stanie i regularnym aktualizowaniu go. To pozwoli ci na bezproblemowe i proste zarządzanie dużymi infrastrukturami serwerowymi, bez potrzeby zapamiętywania skomplikowanych poleceń do połączenia.

Similar articles:

[Mikrokasowanie nginx+apache i niuanse konfiguracji](https://zomro.com/pl/blog/articles/511-microcaching-nginx-apache-and-configuration-nuances) [Czym jest RAID: rodzaje, cechy, zalety i wady](https://zomro.com/pl/blog/articles/505-what-is-raid-types-features-advantages-and-disadvantages) [Jak stworzyć stronę internetową o tematyce adalt (adult): wybór serwera, domeny i ochrona danych](https://zomro.com/pl/blog/articles/508-how-to-create-an-adult-website) [API - Operacja Rebuild](https://zomro.com/pl/blog/articles/466-api-operation-rebuild) [Bezpieczeństwo na chmurowym VPS: jak chronić serwer przed atakami](https://zomro.com/pl/blog/articles/541-security-on-cloud-vps-how-to-protect-the-server-from-attacks)

[ Serwer Forex od €7.95/mies ](/pl/server-for-forex)
