Налаштування машини для використання ключа через SSH


1

Я намагаюся встановити ключ між моєю машиною Ubuntu та моїм веб-сервером, щоб я міг SSH в неї, не потребуючи введення пароля кожен раз.

Я дотримувався знайденого тут підручника - http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html - до листа.

Хоча все начебто спрацювало, коли я намагаюся SSH на сервер наступного разу все-таки запропонує мені отримати пароль.

Перше моє запитання полягає в тому, що я це роблю, щоб я міг SSH на певний сайт на своєму сервері, тому я встановив це все на сервері, використовуючи ім'я користувача, пов’язане з сайтом (в даному випадку tosbourn), це право чи я повинен використовувати root на сервері?

Друге питання полягає в тому, що оскільки на моїй машині моє ім’я користувача інше (це тобі), я думаю, це може зупинити його роботу? Я правильно в цьому припущенні чи це не має значення?

Оскільки він стоїть в домашніх каталогах як на моїй локальній машині, так і на сервері, у них є .ssh, і я скопіював потрібний файл і перейменував його на санкціонований_кейс (і ключі2)

Будь-яка допомога буде дуже вдячна.

Відповіді:


3

Одне, що потрібно перевірити, - це дозволи на ключ-файл на сервері. У минулому я виявив, що файл не sshdбуде використовувати, authorised_keysякщо дозволи не будуть сильно обмежені.

chmod 600 ~/.ssh/authorized_keys

повинен це зробити.

До речі, я використовую ключі, створені PuTTY, для доступу до сервера Linux (Slackware) і все добре.


Також переконайтеся, що ~ / .ssh становить щонайменше 700 (або ssh не зможе прочитати каталог).
Брендан Лонг

1
  • Користуватися звичайним користувачем - це добре і насправді краще. Можна навіть розглянути можливість відключення кореневих логінів на сервері.
  • Якщо ваші імена користувачів розрізняються між машинами, ви повинні вказати ім'я користувача в командному рядку SSH (або в ~/.ssh/configфайлі): ssh -l username hostname.

На своєму сервері перевірте вхід у систему /var/log. Я не впевнений, де невдалі спроби входу потрапляють на вашу машину, але шукайте файли журналів, які нещодавно були змінені після невдалого входу, і ви повинні мати можливість щось придумати.

Якщо це не допомогло, спробуйте дістати багатослівний текст, поставлений із ssh : ssh -v -l username hostname. Висновок важко прочитати і зрозуміти, але це може дати вам зрозуміти, що може піти не так.

Також завжди варто перевірити, щоб відкритий ключ, який ви поставили на свій сервер, не закінчувався там у кількох рядках. Один відкритий ключ = один єдиний рядок у файлі санкціонованих ключів.

Нарешті, ви впевнені, що ввімкнено вхід із відкритим ключем на ваш сервер?


Дякую за Вашу відповідь. У мене не встановлений конфігураційний файл під .ssh, але це має бути добре, щоб вказати ім'я користувача кожного разу! Ось релевантний вигляд результатів виконання багатослівного виводу "debug1: Автентифікації, які можна продовжувати: publickey, gssapi-with-mic, password debug1: Пропозиція відкритого ключа: /home/toby/.ssh/id_dsa debug1: Автентифікації, які можуть продовжуватися: publickey , gssapi-with-mic, password debug1: Проба приватного ключа: /home/toby/.ssh/identity Відкритий ключ знаходиться на одному рядку, і я перевірю, чи він дозволений.
Toby

1

У мене виникли проблеми з ключами на сервері під управлінням Ubuntu. Один із способів перевірити це на сервері:

sudo /usr/sbin/sshd -d -p [some port]

А потім підключіться за допомогою

ssh -v server.url -p [same port]

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

Моє рішення було просто відмовитись і перемістити авторизовані ключі до / etc / ssh / users / [ім'я користувача] / санкціоновані_keys, а потім змінити / etc / ssh / sshd_config's AuthorizedKeysFile налаштування:

AuthorizedKeysFile /etc/ssh/users/%u/authorized_keys

Це свого роду жорстоке рішення, але це може вирішити вашу проблему.


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

Так, я зрозумів, що опублікую своє рішення, якщо це все-таки допоможе. Я більше не використовую Ubuntu на своєму сервері, але я думаю, що проблема у мене була пов'язана з дозволами.
Брендан Лонг

0

Я розмовляв з господарями, і, здавалося б, ключ, який я генерую, потрібно зробити в Putty на машині Windows, перетвореній на роботу на моїй машині Ubuntu. Це не здається правильним, але я збираюся дати йому піти і подивитися, що відбувається!

Знову вітаємо Манні за відповідь.


Ваш сервер - це машина Windows? Я не можу уявити ще одну причину роботи ключа, створеного Putty, а ключ, створений Linux, не працює ...
chronos

0

Для клієнта зробіть:

ssh-keygen

(без парольної фрази)

і потім:

ssh-copy-id ім'я користувача @ сервер

Це повинно налаштувати введений ключ.

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