ssh віддалений сервер на якомусь іншому порту, крім 22, без пароля


16

Я зазвичай підключаюся до віддаленого сервера

ssh user@server.com -p 11000

а потім щоразу надаючи пароль користувачеві. Як мені уникати введення пароля кожного разу, коли я підключаюсь за допомогою ssh?

Відповіді:


23

Спочатку поставте це ~/.ssh/config:

Host server
HostName server.com
Port 11000
User user

Ви зможете ssh server, а потім введіть пароль.

По-друге , перевірте, чи є у ~/.ssh/вас імена файлів id_rsaі id_rsa.pub. Якщо ні, у вас немає налаштованого ключа, тому вам доведеться створити пару за допомогою ssh-keygen. Ви можете дати ключам пароль чи ні. Згенерований файл id_rsa.pubповинен виглядати приблизно так:

ssh-rsa lotofrandomtext user @ local

По-третє , ssh на сервері, створіть файл, ~/.ssh/authorized_keysякщо його не існує. Потім додайте ~/.ssh/id_rsa.pubсюди вміст, який ви створили раніше. Це може означати копіювання вмісту файлу у буфер обміну, а потім відкриття ~/.ssh/authorized_keysв текстовому редакторі та вставлення речі.

Крім того, використовуйте команду ssh-copy-id server(замініть serverім'я в ~/.ssh/config). Це зробить те саме, що і вище. Часом я бачив ssh-copy-idзастрявання, тому мені це не дуже подобається.

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

По-четверте (потрібне лише якщо ви захищаєте свій приватний ключ за допомогою парольної фрази), введіть це~/.bashrc :

start_ssh_agent() {
    # Try to use an existing agent
    save=~/.ssh-agent
    if [[ -e "$save" ]]
    then
        . "$save" > /dev/null
    fi
    # No existing agent, start a new one
    if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
    then
        ssh-agent > "$save"
        . "$save" > /dev/null
        ssh-add
    fi
}
start_ssh_agent

З цим вам потрібно буде вводити парольну фразу лише один раз під час завантаження комп'ютера.


2
«Оповідання» також повинно включати дискусію про те, як уникнути введення цієї прискіпливої ​​парольної фрази весь час. :-) ssh-агент та / або брелок - це можливості розглянути.
Faheem Mitha

1
Крім того, якщо ваше ім'я користувача на віддаленому хості не збігається з вашим ім'ям користувача на локальному хості, ви можете додати User userрядок до ~/.ssh/config.
cjm

@Faheem Це добре, але я ніколи не ставив подібного, тому не думаю, що я в змозі проінструктувати інших про це :)
phunehehe

@FaheemMitha там ти йдеш :)
phunehehe

Гей, краще пізно, ніж ніколи.
Faheem Mitha


4

Як доповнення до відповіді phunehehe, перегляньте посібник із брелоків для брелоків у Gentoo Linux . брелок також використовує ssh-агент . Демон ssh-агента робить доступною парольною фразою (стає недоступною, коли демон-ssh-агент помирає), але брелок , щоб процитувати керівництво.reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in

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