Настройте SSH-соединения без пароля всего за 3 шага

Привет,

Здесь вы увидите, как удаленно подключиться к ПК с помощью SSH Просто введите пароль в первый раз, и даже если мы перезагрузим оба компьютера, у нас не будет запрашиваться пароль снова.

Но давайте сначала посмотрим краткое объяснение того, что это такое SSH:

SSH это протокол, средство связи между двумя компьютерами. Это позволяет нам управлять командой удаленно. Когда мы получаем доступ к другому компьютеру через SSH, команда, которую мы вводим в этот терминал, будет выполняться на другом компьютере, таким образом мы управляем / контролируем его.

Все, что передается SSH, он зашифрован и имеет достаточно хорошую защиту.

Теперь посмотрим, как всего за три шага мы настроим PC # 1 получить доступ PC # 2 без ввода пароля:

У нас такая ситуация:

ПК №1 - » Вы хотите подключиться к PC # 2, без необходимости вводить пароль каждый раз, когда вы пытаетесь подключиться к этому другому компьютеру.

ПК №2 - » У вас установлен SSH-сервер. Это тот PC # 1 подключится, и сделает это без ввода пароля. На этом ПК есть пользователь с именем корень.

Начнем…

1. En PC # 1 пишем следующее:

  • ssh-keygen -b 4096 -t RSA

Это сгенерирует открытый ключ. Чтобы не путаться с «публичным и приватным ключами», объясню очень просто.

Предположим, у вас в кармане два ключа от вашего дома, один вы отдаете своей девушке, поскольку живете вместе, а с другим вы остались одни, вы его никому не отдаете. Что ж, тот ключ, который вы дали своей девушке, позволит ей войти в ваш дом, не сказав вам, не спросив вашего разрешения, верно? это открытый ключ, «ключ», который позволяет одному компьютеру получить доступ к другому, не спрашивая вашего разрешения (то есть без ввода имени пользователя + пароля)

Когда они введут эту команду, появится следующее:

2. Просто нажмите [Войти], через секунду снова нажимаем [Войти], а через секунду нажимаем еще раз [Войти]. Я имею в виду, мы бы нажали [Войти] всего три (3) раза, только нажимаем ... ничего не пишем ????

Когда мы это сделаем, появится нечто очень похожее на следующее:

Готово, у нас уже есть открытый ключ ... теперь нам нужно передать его кому захотим (как в примере, отдайте его нашей девушке, ха-ха)

Мы хотим, чтобы PC # 1 подключиться к PC # 2, уже в PC # 1 мы сделали все вышеперечисленное в PC # 2 Мы ничего не сделали. Хорошо, PC # 2 имеет IP-адрес, например 10.10.0.5.

3. Мы вставляем PC # 1 следующие:

  • ssh-копия-идентификатор root@10.10.0.5

Это просто дает вам открытый ключ PC # 1 a PC # 2, то есть дает PC # 2 открытый ключ PC # 1В то время как PC # 1 вы знаете, он хранит свой закрытый ключ; тот ключ, который никому не дан. Важно не ошибиться с пользователем, то есть если пользователь «корень"Это не существует на ПК № 2, даст нам ошибку, важно четко указать, какого пользователя мы будем использовать для этого, в дополнение к тому факту, что тот пользователь, с которым мы настраиваем доступ без пароля, будет тем же пользователем, с которым мы будем иметь доступ в будущем. Как только это будет сделано, это должно выглядеть так:

На предыдущем шаге они должны ввести пароль пользователя в PC # 2.

И вуаля ... все настроено ????

Как нам кажется, в терминале, давайте проверим, действительно ли все работает на 100% нормально. Для проверки ставим:

  • ssh корень @ 10.10.0.5

Если они хотят получить доступ к другому компьютеру, не всегда вводя пароль (PC # 3 например), мы просто даем ему наш открытый ключ, и все, то есть как только мы выполнили шаг #1 y #2 нам больше не придется этого делать. Если мы хотим получить доступ PC # 3 например, у которого по IP 10.10.99.156 мы просто помещаем:

  • ssh корень @ 10.10.99.156

Пока что учебник.

Объясните, что уровень безопасности, когда мы говорим о SSH, действительно высок, метафора, с помощью которой я объяснил некоторые шаги (передача ключа нашей девушке), может быть не самой подходящей, ха-ха, поскольку наша девушка могла дать ключ к кто-то еще. Когда мы говорим о SSH, принципы безопасности легко объяснить, когда мы пытаемся получить доступ к нашему компьютеру (PC # 1) проверяет, есть ли на ПК № 2 открытый ключ нашего компьютера (в данном случае он есть, потому что мы настроили его таким образом), затем, если он есть, это просто, проверьте, идентичен ли этот открытый ключ нашему закрытому ключу (тому, который мы никому не давали). Если ключи идентичны, это позволяет нам получить доступ, в противном случае и в качестве меры безопасности он не позволяет нам получить удаленный доступ к другому компьютеру.

Итак, теперь вы знаете ... отдать нашей девушке ключ от дома - не самое безопасное, но совместное использование ключей и удаленный доступ к другому компьютеру через SSH - это безопасно. ^ _ ^

Сомнения или вопросы, жалобы или предложения дайте мне знать.

Привет всем.


43 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   elav <° Linux сказал

    Я действительно не понимаю, как ты, параноидальный по поводу безопасности, совершил такую ​​ошибку. Если на шаге, где написано:

    Enter passphrase (empty for no passphrase)

    Мы ничего не пишем, мы теряемся, если пользователю удается получить доступ к нашему ПК и открыть терминал, поскольку он автоматически выполняет:

    ssh root@10.10.0.5

    Он войдет без запроса пароля.

    1.    КЗКГ ^ Гаара <° Linux сказал

      Если кто-то получит доступ к моему ноутбуку, да, он сможет получить доступ к ПК №2 без необходимости вводить его пароль, однако, как вы говорите, я параноик по поводу безопасности, вы действительно думаете, что получение доступа к моему ноутбуку - это что-то так просто? ХАХА.

      Когда я всегда встаю, я всегда блокирую экран, иначе через 30 секунд мышь или клавиатура ноутбука не будут активны, они заблокируются так же 😉

      1.    Иисус сказал

        Если кто-то украдет ваш ноутбук, независимо от того, на сколько сеанс заблокирован, получить доступ к файлам будет тривиально, это вопрос 5 минут с Linux, загружаемым с USB. А после доступа к файлам, поскольку закрытый ключ не защищен, вы можете использовать его напрямую или, лучше, скопировать его и получить доступ к любому из ваших серверов, не выходя из дома. На самом деле процесс настолько быстр, что вам даже не нужно знать. Через 5 минут вы идете в ванную или что-то еще, все можно сделать.

        Безопасный способ - поставить пароль на закрытый ключ, а затем использовать ssh-agent, чтобы он запомнил пароль для всего сеанса (просто ssh-add). Таким образом, он будет запрашивать пароль только в первый раз, и на практике у вас будет соединение без пароля в 90% случаев, помимо защиты от кражи или вторжений.

        1.    x11тете11x сказал

          Легко ли получить доступ к файлам? Вы когда-нибудь слышали о полном шифровании диска? (luks + cryptsetup)

          1.    Иисус сказал

            Да, конечно, если у вас зашифрован весь диск, это другое дело, но 90% пользователей этого не делают, потому что не знают, как это делать, а во многих случаях это им даже не компенсирует. Напротив, не сохранять незашифрованные пароли или незащищенные закрытые ключи на диск - это то, что может сделать каждый, и в целом это хорошая практика.

            Сохранение незащищенных закрытых ключей на зашифрованном диске похоже на парковку вашего автомобиля, оставляя двери открытыми, но нанимая охранника с доберманом, чтобы защитить вас. Да, это работает, но гораздо проще и эффективнее заблокировать его напрямую.

    2.    чанголеон сказал

      MMm не так уж много делает с минетом, хотя они могут создать виртуальный интерфейс, назначить IP и подключиться к этому виртуальному IP, поэтому даже если они удалят ключ, они не смогут найти машину, потому что ключ работает только для определенного IP. Это также зависит от того, что они хотят, это отлично работает для меня, как описывает товарищ, у меня есть частный сервер в моем доме, мне не нужно повышать безопасность, потому что на нем настроен VPN.

  2.   Самкехо сказал

    И может ли все это применяться к оконному терминалу, который должен подключаться к нескольким * NIX?
    У меня есть замазка, но я также могу использовать Securecrt (теперь у меня есть скрипт)

    1.    КЗКГ ^ Гаара <° Linux сказал

      В терминале Windows (cmd) убежден, что нет, там не будет.
      Однако, если вы используете Putty, вы можете попробовать, это может сработать.

      Приветствую и добро пожаловать на наш сайт 😀

    2.    эрм3нда сказал

      Putty уже принимает параметр -pw в дополнительных командах. (например, -pw12345)
      На самом деле Super Putty круче, чем просто Putty. (Это рамка для Putty)

      Так что вам не нужно это ставить.

  3.   Higi сказал

    Спасибо за пост, очень полезно. Немного скучно входить в SSH для всего.

    1.    КЗКГ ^ Гаара сказал

      Привет и большое спасибо за ваш визит и комментарий 🙂
      Ничего, друг, приятно знать, что это было полезно ... если мы можем помочь вам другим способом, мы более чем рады 😉

      Приветствую и добро пожаловать на сайт.

      1.    соседний сказал

        Мне нужно подключиться к компьютеру windonws из Linux, как и через терминал

  4.   Роберто сказал

    Отлично ... это действительно вдохновляет видеть этот тип руководств, это заставляет меня также поделиться своим и без того упрощенным опытом, чтобы сообщество могло воспользоваться ими. Большое спасибо из Сальвадора.

  5.   Хосе Грегорио сказал

    Я подключаюсь к машине ubuntu к машине, на которой есть debian, но это дает мне ошибку, при которой не может пройти аутентификацию, и поэтому он запрашивает у меня пароль .. почему это произойдет? Дело в том, что версии ssh-keygen отличаются или что происходит?

    1.    КЗКГ ^ Гаара сказал

      Укажите здесь ошибку, которая дает вам возможность лучше вам помочь 😉
      Кроме того, вы можете попробовать поместить это в терминал:
      sudo mv $HOME/.ssh/known_hosts /opt/

      Это очищает соединения (историю соединений) SSH, которые у вас были.

  6.   Кинон сказал

    И если бы я хотел использовать один и тот же открытый ключ для нескольких серверов, могу ли я это сделать или мне нужно создать ключ для каждого сервера, к которому я хочу получить доступ? Я все равно попробую, но на каком-нибудь бесполезном сервере, чтобы не испортить что-нибудь полезное.

    Gracias у Saludos.

    1.    КЗКГ ^ Гаара сказал

      Поскольку я делал это на своем ноутбуке, это разные ключи для каждого сервера, на самом деле, я думаю, что невозможно использовать один и тот же ключ для нескольких ... потому что идентификатор каждого сервера уникален, как отпечаток пальца 🙂

      привет

      1.    Кинон сказал

        Привет, повелитель песков. Я читал ключи и обнаружил, что пара ключей (открытый и закрытый) обслуживает сервер-клиент для отправки и получения вызовов и, таким образом, идентифицирует друг друга, поэтому это не имеет ничего общего с паролем, который вы используете для доступа к server, последний используется для «вставки» открытого ключа в доверенные ключи сервера. Так что вы можете использовать его столько, сколько захотите или захотите.

        Я не знаю, объяснил ли я себя, но шутка заключается в том, что для того, чтобы иметь возможность использовать вашу пару ключей на других серверах, после выполнения вашего руководства вам просто нужно сделать:

        ssh-копия-идентификатор other.user@otra.ip
        напишите свой пароль для этого другого сервера

        И готово.
        привет

  7.   Рауль сказал

    Привет, спасибо за гида, он единственный мне помог. Теперь, когда я хочу сделать это на другой паре компьютеров, я получаю следующее:

    $ ssh-копия-идентификатор -p 4000 lm11@148.218.32.91

    Плохой порт umask 077; test -d ~ / .ssh || mkdir ~ / .ssh; cat >> ~ / .ssh / authorized_keys '

    Спасибо за вашу помощь.

  8.   Немецкий сказал

    Я сделал то, что вы нам сказали, но он продолжает спрашивать у меня пароль. Я проясняю это соединение, которое я устанавливаю между двумя серверами Linux Red Hat ... Что еще это могло быть?

    Я уже смотрел / etc / ssh / sshd_config

    Я уже перезапустил оба сервера

    PC2 = linux red hat 6.4
    PC2 = linux red hat 5.1

    1.    Ксавье сказал

      Чтобы служба ssh работала, она должна быть правильно настроена (файл / etc / ssh / sshd_config на ПК2).

  9.   Немецкий сказал

    исправление…

    ПК1 = Centos 6.4
    PC2 = Red Hat 5.1

  10.   Гривас сказал

    Здравствуйте, коллеги, мне нужно установить доверительные отношения между 1 сервером Linux Centos 5.3 и Unix Sco5.7, но у меня проблема в том, что при выполнении шага 3 копирования ключа из Linux в Unix я получаю сообщение / usr / bin / ssh-copy-id: ОШИБКА: личности не найдены, почему это могло быть?

    спасибо

  11.   Namek сказал

    Я шаг за шагом следовал руководству. Это не дает мне никаких ошибок, но, в конце концов, когда я подключаюсь с ПК1 к ПК2, он продолжает запрашивать пароль root каждый раз, когда я подключаюсь.

    Кто-нибудь думает, что это могло быть?

  12.   Роб сказал

    Кажется, что после генерации ключа вам нужно выполнить ssh-add, чтобы агент аутентификации мог его использовать.

  13.   Андреа Колодро сказал

    Как удаляю ключ доступа, ничего не распознает, взломал, помогите, ничего не входит

  14.   Джордан акоста сказал

    Спасибо большое, все сработало отлично

  15.   Miniminiyo сказал

    Большое спасибо за руководство! Это очень просто и пригодится, когда ваши серверы ходят и вам не нужно вводить ключи и, таким образом, автоматизировать работу 😀

  16.   эрм3нда сказал

    Спасибо.

    Я не знал об использовании ssh-copy-id, и это было довольно автоматически.
    По правде говоря, мне надоело писать пароль, поэтому я сохраняю его с перефразированием DEFAULT, которое сохраняется во время сеанса.

    Я не против писать его один раз каждый раз, когда включаю комп, ролл приходится ставить каждый раз, когда он отключается или тому подобное

    SSH Нет дзюцу!

  17.   ящерица сказал

    Привет

    хороший учебник ... но если я хочу передать информацию ??? как мне это сделать?

  18.   Диего Гонсалес сказал

    Здравствуйте, ваш вклад очень интересен, но у меня есть несколько сомнений по поводу аналогичной темы

  19.   Карлос Эрнандес сказал

    Эй.

    Попробуйте выполнить описанные выше действия, но при попытке скопировать ключ на сервер 2 (ПК2) он сообщает мне, что команды не существует.

    bash: ssh-copy-id: команда не найдена

    Могу ли я скопировать ключ вручную?

  20.   Heidy сказал

    Превосходно!! Я искал такое простое объяснение, и оно отлично сработало

    спасибо!

  21.   Ярумаль сказал

    Отличный вклад.
    Спасибо большое, мне это очень помогло.

  22.   Pedro сказал

    Привет, я хотел бы знать, есть ли способ выполнить эту команду ssh-copy-id. Поскольку я устанавливаю Open ssh для Windows, ssh у меня работает в DOS, но у него нет этой команды ssh-copy-id. Я хотел бы знать, как отправить этот открытый ключ на другой сервер Linux (сервер Linux). Большое спасибо.

  23.   Pedro сказал

    Привет. Мне нужно установить доверительные отношения между Linux-сервером и Windows-машиной. Установите SSH для Windows, и у меня он работает. Но эта команда ssh-copy-id недоступна в этом инструменте.

    Они знают другой способ сделать это без использования ssh-copy-id.

    Большое спасибо за ваши комментарии.

  24.   Андриньо сказал

    Но вопрос в том, чтобы иметь возможность подключиться без пароля, если мы введем кодовую фразу, она попросит нас указать этот пропуск для подключения, и это не было целью этого

  25.   Андриньо сказал

    Мне он очень пригодился для моего компьютерного модуля fp, спасибо 🙂

  26.   Vicent сказал

    Спасибо!

  27.   Икс-мэн, человек-Икс сказал

    Некоторые беспокоятся о том, насколько неприятным может быть ввод пароля (кодовой фразы), для этого, как упоминалось выше, это «пользовательский агент», и я также настроил его с помощью Keepass и его функции Auto-Type, поэтому я просто Я вызываю терминал, и с комбинацией клавиш, которую они настроили, у меня также есть «псевдонимы» для каждого запроса, и все очень просто.

    Хороший учебник.

    Отлично повеселиться !!

  28.   Фелипе Оярсе сказал

    Очень хорошая информация 🙂 но у меня вопрос ...

    У меня есть PC10, на котором я храню информацию, информация отправляется с pc1 - pc2 - pc3 на PC10, как я могу заставить pc1, pc и pc3 использовать один и тот же ключ для доступа к PC10 без ключа.

    Ура…

  29.   Нестор сказал

    Как я могу указать, что находится на machine1, в bash машины2, не помещая ssh ip @ hosts в bash машины1. Не знаю понимаю xD

  30.   Мартин сказал

    Прошло 10 лет с момента этой публикации, и я продолжаю посещать ее, когда мне это нужно. Как и некоторые другие уроки здесь, они выдержали испытание временем. Спасибо и привет!