Постійно зберігайте адреси під час використання SSH


12

У мене є кілька віддалених серверів, до яких я підключаюся через термінал. На серверах немає домену, лише IP-адреса, яку важко запам'ятати, коли я отримав декілька з них.

Чи існує спосіб назавжди зберегти значення в терміналі, щоб я міг зробити наступне?

server1 = 111.222.111.222

І введіть команди типу:

ssh root@server1

замість:

ssh root@111.222.111.222

Відповіді:


22

Для підключень SSH ви можете створити файл конфігурації користувача ~/.ssh/configта розмістити там відображення, наприклад

Host server1
  Hostname      111.222.111.222

Ви можете легко додати інші поля, такі як Port(для нестандартних портів) та User(корисно, якщо ваше ім'я користувача на віддаленій системі відрізняється від локальної системи). Дивіться man ssh_configповну інформацію.


14

Так, просто запишіть їх у файл /etc/hosts. Він має такий синтаксис:

1.2.3.4 servername additional_servername

Де:

  • 1.2.3.4 - IP-адреса
  • servername це ім'я
  • additional_servername - необов'язкова назва

Після збереження ви можете дістатися до сервера за його ім'ям.


@theusual Якщо це відповідь, з яким ви дійшли, будь ласка, прийміть її (поставте галочку під кнопками "вгору / вниз").
jpmc26

8

Звичайно, для вашого конкретного питання ви хочете дотримуватися порад @chaos та @steeldriver, але в загальному випадку, щоб "постійно зберігати значення в терміналі", ви шукаєте змінних оболонки. Як їх встановити, буде залежати від вашої оболонки (я думаю echo $SHELL, надасть відповідну інформацію).

Якщо під терміном "постійно" ви маєте на увазі "до тих пір, поки я не вийду з цього термінального сеансу", ви можете просто використовувати export server1=111.222.111.222команду, якщо ви використовуєте bashоболонку на основі ( setenv server1 111.222.111.222для оболонки на csh/tcshоснові, якщо я правильно пам'ятаю). Тоді ви можете отримати доступ до змінної з префіксом $ : ssh root@$server1.

Якщо під терміном "постійно" ви маєте на увазі "щоразу, коли я запускаю новий термінал", тоді вам потрібно буде встановити свою змінну в одному з файлів ініціальної оболонки. Наприклад, $HOME/.bashrcдля bashоболонок на основі, або $HOME/.cshrc- імовірно, використовуючи той самий синтаксис, як зазначено в попередньому пункті. Зауважте, що вам доведеться створити файл init (наприклад, source $HOME/.bashrcабо відкрити нову оболонку, щоб зміни були враховані.

Примітка. Відповідь з пам'яті може потребувати невеликих коригувань.


2
Постійний контроль, навіть якщо перезавантажений комп'ютер. Я погляну на це, це може стати в нагоді деякий час.
звичайний

Тоді застосовується другий метод (оболонка init файлів).
Skippy le Grand Gourou

1

Не пряма відповідь на запитання (хаос і steeldriver вже надали те, що, на мою думку, було б найкращим буквальним рішенням), але якщо вам потрібно лише в більшості випадків перенести повідомлення одному користувачеві за однією адресою, то подивіться на редагування .bash_aliasesфайл у вашому домашньому каталозі повинен бути корисним, так як ви можете створити псевдонім для команди все терміналу.


0

Конкретні відповіді дуже хороші.

Однак загалом, якщо ви хочете, щоб деякі речі були визначені / налаштовані в оболонці, просто напишіть сценарій, щоб зробити це, а потім виконати його за допомогою sourceабо .коли ви хочете, щоб ця установка діяла в дію.

Якщо ви щось постійно хочете, ви можете джерело його в .profile (для оболонок для входу) або в .bashrc для всіх оболонок (якщо ви використовуєте bash).

При такому підході ви можете мати кілька сценаріїв для встановлення різних робочих середовищ у міру необхідності, якщо ви переконайтеся, що вони не наступають один на одного, якщо ви викликаєте один з них після виклику іншого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.