- Организация доступа по SSH к удалённому серверу без пароля
- 1. Генерируем ключ SSH
- 2. Копируем публичный ключ SSH на удаленный сервер
- 3. Тестирование безпарольного доступа по SSH и замечания
- oioki.ru
- Похожие статьи
- 3 thoughts on “SSH-доступ по ключам (беспарольный доступ)”
- Как настроить SSH-вход без пароля
- Настройка SSH входа без пароля
- Отключение аутентификации по паролю SSH
- Выводы
- linux
- Беспарольный доступ по SSH
- Как настроить SSH вход без пароля
- Подготовка
- Шаг 1. Создайте пару ключей SSH
- Шаг 2. Загрузите открытый ключ на удаленный сервер
- Вариант 1. Загрузить открытый ключ с помощью команды ssh-copy-id
- Вариант 2: загрузить открытый ключ с помощью команды cat
- Шаг 3. Войдите на сервер без пароля
- Дополнительно: Устранение неполадок с разрешениями файлов удаленного сервера
Организация доступа по SSH к удалённому серверу без пароля
Оригинал: Password less SSH login setup on Linux
Автор: Arnab Satapathi
Дата публикации: 19 сентября 2017 г.
Перевод: В.Костромин
Дата перевода: 24 сентября 2017 г.
Короткий пароль не безопасен, это просто кошмар с точки зрения безопасности, а длинный пароль для входа убивает производительность. В этой статье будет показано, как организовать доступ по SSH к вашим серверам или любому компьютеру без ввода пароля.
Я обнаружил, что при этом экономится куча времени. Так что стоит применить этот способ, если вы имеете дело с множеством серверов или, например, используете SSHFS.
Мы будем предполагать, ваш сервер уже использет службу SSH и она запущена. При этом мы не будем запускать SSH-сервер на клиентской стороне, будем использовать беспарольный SSH.
1. Генерируем ключ SSH
Снова предполагаем, что у вас на клиентской машине установлен SSH-клиент, например openssh-client . Первым делом нужно сгенерировать ключ SSH.
Для этого будем использовать команду ssh-keygen , которая имеется в составе пакета openssh-client в Ubuntu, как и в любом другом дистрибутиве, основанном на Debian.
Вам не нужно при этом вводить какую-то парольную фразу, просто держите нажатой клавишу Enter. Эта команда создаст 2048-битовый ключ RSA, который по умолчанию будет сохранен в каталоге
Если вы хотите получить ключ другого типа, например DSA или ECDSA, добавьте соответствующий параметр после аргумента -t к команде ssh-keygen .
Я полагаю, что 2048-битный ключ RSA достаточно надежен для использования в не-критичных случаях. Однако, если вы хотите сгенерировать более длинный ключ, используйте в команде аргумент -b .
2. Копируем публичный ключ SSH на удаленный сервер
Существует два типа SSH-ключей для организации безпарольного доступа по SSH: несекретный публичный ключ (a public key) и секретный ключ (private key). id_rsa — это секретный ключ, а id_rsa.pub — это ваш публичный ключ.
На удаленный сервер вам нужно скопировать публичный ключ, либо с помощью команды ssh-copy-id , либо вручную каким-то другим способом.
Типичный синтаксис команды копирования публичного ключа SSH выглядит следующим образом.
Может быть более понятен будет следующий пример:
У вас будет запрошен текущий пароль для того, чтобы провести аутентификацию вас как законного пользователя, введите его. Вам будет предложено подтвердить подлинность удаленного сервера, просто введите yes.
Существует альтернативный вариант: вы можете залогиниться на удаленный сервер и создать текстовый файл в каталоге the
/.ssh , например, выполнив следующую команду.
Скопируйте в этот файл содержимое вашего файла
/.ssh/id_rsa.pub на вашей локальной машине, сохраните файл и выйдите из текстового редактора.
3. Тестирование безпарольного доступа по SSH и замечания
Теперь вы уже должны иметь возможность подключиться к удаленному серверу не вводя пароля. И для достижения большей безопасности вы можете отключить возможность SSH-входа по паролю.
Замечание: Очень важно сохранять в тайне ваш секретный ключ. Никогда никому его не сообщайте и не теряйте его. Также никогда не перезаписывайте существующие ключи, если вы ранее использовали таковой. Вы просто-напросто потеряете беспарольный доступ по SSH к вашему серверу.
Надеюсь, что это краткое руководство по включению входа в систему без пароля достаточно простое, и вы все поняли. Если у вас есть какие-либо предложения или вопросы, задайте их в комментариях (прим.: имеются в виду комментарии к оригинальной статье).
Если вы не очень хорошо знакомы с SSH, вы можете почитать следующие статьи на нашем сайте:
Источник
oioki.ru
Под катом инструкция, как настроить беспарольный SSH-доступ между двумя машинами, используя открытый и закрытый ключи.
Предположим, что у нас есть comp1 и comp2, и нам нужно зайти с comp1 на comp2, при этом пользователь на первом компе – user1, на втором компе – user2.
1. Сначала нужно создать пару ключей на comp1:
Вместо DSA можно использовать алгоритм RSA (опция -t rsa), однако он менее надежный.
2. Теперь нужно дописать содержимое публичного ключа id_dsa.pub в файл authorized_keys на втором компьютере:
3. Вуаля – пароль не спрашивается:
Похожие статьи
3 thoughts on “SSH-доступ по ключам (беспарольный доступ)”
Спасибо. Раньше хотелось это реализовать, но гуглить было совсем лень 🙂
Запускаю свой скрипт, соединение прошло успешно, но с офисом не соединился для связи использую данную строку:
echo “Соединяемся с сервером … ”
COMA_START_FUSE=’sshfs ‘$NAME_USER’@###.###.###.###:/home/user/change /home/’$NAME_USER’/change -o nonempty’
# echo $COMA_START_FUSE
if !(test -d /home/$NAME_USER/change/magtest) ;then
if ! ( $COMA_START_FUSE ) ; then
my_kill
err_connect
fi
fi
в этом месте скрипт с начало встал, подождал минут 10, вырубил терминал;
запустил еще раз на выполнение, интернет подключился опять;
дальше он мне выдал connect reset by peer, не вопрос перезапустим)- все родной для только для тебя);
запустил еще раз на выполнение, интернет подключился опять, жду 10 минут все стоит на одном месте..
Ладно идем дальше:
подключаем через терминал интернет^
ifup ppp0
все завелось
подключаемся через ssh
ssh user@IP-адрес —- ключи в директории клиента (/home/user/.ssh/id_rsa.pub) и на сервере(home/user/.ssh/authorized_keys)присутствуют..
Запустил так еще раз
ssh -v user@IP-адрес (-v ключ что бы видеть детально подсоединение)
Либо сразу пишет Connection closed by “мой ip”, либо запрашивает пароль, ввожу и опять Connection closed by “мой ip”, хотя не должен же, ключи присутствуют..
Да и еще 1 нюанс ip-ник к которому подсоединяюсь это статический адрес–естественно при конекте он с начало заходит на модем, а потом уже на мой сервер убунты, но проброску порта сделана норм.
В чем проблема?
Почему то у меня не работает ни cat ни scp. Получаю разные ошибки. Просто вообще не работает. Почему это так сложно?? я не понимаю. Какое то дерьмо и такое оказывается сложное. это пиздец. Пацаны, посоветуйте мне институт нормально выучить это.
Источник
Как настроить SSH-вход без пароля
Secure Shell (SSH) — это криптографический сетевой протокол, используемый для безопасного соединения между клиентом и сервером и поддерживающий различные механизмы аутентификации. Двумя наиболее популярными механизмами являются аутентификация на основе паролей и аутентификация на основе открытого ключа.
В этом руководстве мы покажем вам, как настроить аутентификацию на основе ключа SSH, а также как подключиться к вашему серверу Linux без ввода пароля.
Настройка SSH входа без пароля
Чтобы настроить SSH-вход без пароля в Linux, все, что вам нужно сделать, это сгенерировать открытый ключ аутентификации и добавить его в файл
/.ssh/authorized_keys удаленных хостов.
Следующие шаги описывают процесс настройки входа по SSH без пароля:
Проверьте существующую пару ключей SSH.
Перед созданием новой пары ключей SSH сначала проверьте, есть ли у вас уже ключ SSH на вашем клиентском компьютере, потому что вы не хотите перезаписывать существующие ключи.
Выполните следующую команду ls, чтобы проверить наличие существующих ключей SSH:
Если есть существующие ключи, вы можете использовать их и пропустить следующий шаг или создать резервную копию старых ключей и сгенерировать новый.
Если вы видите No such file or directory или no matches found это означает, что у вас нет ключа SSH, и вы можете перейти к следующему шагу и сгенерировать новый.
Создайте новую пару ключей SSH.
Следующая команда сгенерирует новую пару ключей SSH 4096 бит с вашим адресом электронной почты в качестве комментария:
Нажмите Enter чтобы принять расположение и имя файла по умолчанию:
Затем инструмент ssh-keygen попросит вас ввести безопасную парольную фразу. Независимо от того, хотите ли вы использовать кодовую фразу, решать вам, если вы решите использовать кодовую фразу, вы получите дополнительный уровень безопасности. В большинстве случаев разработчики и системные администраторы используют SSH без парольной фразы, поскольку они полезны для полностью автоматизированных процессов. Если вы не хотите использовать кодовую фразу, просто нажмите Enter .
В целом взаимодействие выглядит так:
Чтобы убедиться, что ключи SSH сгенерированы, вы можете указать свои новые закрытые и открытые ключи с помощью:
Скопируйте открытый ключ
Теперь, когда вы сгенерировали пару ключей SSH, чтобы иметь возможность войти на свой сервер без пароля, вам необходимо скопировать открытый ключ на сервер, которым вы хотите управлять.
Самый простой способ скопировать ваш открытый ключ на сервер — использовать команду ssh-copy-id . На вашем локальном машинном терминале введите:
Вам будет предложено ввести пароль remote_username :
После аутентификации пользователя открытый ключ будет добавлен в файл authorized_keys удаленного пользователя, и соединение будет закрыто.
Если по какой-либо причине ssh-copy-id недоступна на вашем локальном компьютере, вы можете использовать следующую команду для копирования открытого ключа:
Войдите на свой сервер с помощью ключей SSH
После выполнения описанных выше действий вы сможете войти на удаленный сервер без запроса пароля.
Чтобы проверить это, просто попробуйте войти на свой сервер через SSH:
Если все прошло успешно, вы сразу же войдете в систему.
Отключение аутентификации по паролю SSH
Чтобы добавить дополнительный уровень безопасности к вашему серверу, вы можете отключить аутентификацию по паролю для SSH.
Перед отключением парольной аутентификации SSH убедитесь, что вы можете войти на свой сервер без пароля, а пользователь, с которым вы входите, имеет права sudo.
В следующих руководствах описывается, как настроить доступ sudo:
Войдите на удаленный сервер с помощью ключей SSH, либо как пользователь с привилегиями sudo, либо как пользователь root:
Откройте файл конфигурации SSH /etc/ssh/sshd_config , найдите следующие директивы и измените их следующим образом:
Как только вы закончите, сохраните файл и перезапустите службу SSH.
На серверах Ubuntu или Debian выполните следующую команду:
На серверах CentOS или Fedora выполните следующую команду:
Выводы
В этом руководстве вы узнали, как настроить аутентификацию на основе ключей SSH, позволяющую входить на удаленный сервер без ввода пароля пользователя. Вы можете добавить один и тот же ключ к нескольким удаленным серверам.
Мы также показали вам, как отключить аутентификацию по паролю SSH и добавить дополнительный уровень безопасности на ваш сервер.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
linux
Беспарольный доступ по SSH
- Получить ссылку
- Электронная почта
- Другие приложения
/.ssh/id_rsa.pub | ssh user@123.45.56.78 «mkdir -p
Создание SSH-ключей на Windows с PuTTYgen
Если вы используете ОС Windows, то подключиться по SSH к вашему (Linux) серверу можно через PuTTY или OpenSSH. Генерация ключей в этом случае выполняется также при помощи этих программ. В примере мы используем клиент PuTTY.
Запустите приложение PuTTYgen, которое устанавливается вместе с PuTTY. Выберите тип ключа SSH2-RSA и нажмите Generate.
В процессе генерации ключей несколько раз произвольно проведите мышкой по экрану приложения для создания случайных величин, используемых для ключей.
После завершения создания ключей открытый ключ выводится на экран, закрытый хранится в памяти приложения. Чтобы сохранить эти ключи нажмите Save public key и Save private key. Укажите расположение файлов с ключами.
При сохранении закрытого ключа, если не заполнено поле Key passphrase, появится запрос «Хотите ли вы сохранить ключ без секретной фразы?»
Теперь открытый ключ необходимо скопировать на сервер в файл authorized_keys. Используйте WinSCP или другой клиент для работы с файлами на удалённом Linux-сервере. Вы можете скопировать файл с открытым ключом целиком на сервер, чтоб его копия хранилась в папке .ssh
Откройте файл authorized_keys через WinSCP и файл, в который вы сохранили открытый ключ (public), на локальном компьютере текстовым редактором. Скопируйте значение ключа, сохраните и закройте файл в WinSCP.
При запуске PuTTY укажите путь к закрытому ключу на локальном компьютере. Для этого во вкладке Connections → Auth выберите необходимый путь.
Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.
Отключение аутентификации по паролю
Подключитесь к серверу по SSH, используя пароль, и откройте файл sshd_config для редактирования.vi /etc/ssh/sshd_config
Убедитесь, что указан правильный путь к открытым ключам SSH, поставьте значение параметра PasswordAuthentication no. Перезапустите службу sshd.
Источник
Как настроить SSH вход без пароля
SSH (Secure Shell) обеспечивает безопасное удаленное соединение между двумя системами. С помощью этого криптографического протокола вы можете управлять машинами, копировать или перемещать файлы на удаленном сервере через зашифрованные каналы.
Существует два способа входа в удаленную систему через SSH — с использованием аутентификации по паролю или аутентификации с открытым ключом (вход SSH без пароля).
В этом руководстве вы узнаете, как настроить и включить вход по SSH без пароля.
Подготовка
- Доступ к командной строке или окну терминала
- Пользователь с привилегиями sudo или root
- Локальный сервер и удаленный сервер
- Доступ по SSH к удаленному серверу через командную строку или окно терминала
Перед тем как начать проверьте существующие ключи SSH. Возможно, на вашем компьютере уже есть пара ключей SSH. Чтобы узнать, есть ли у вас в системе ключи SSH, выполните команду:
Если в выводе указано, что таких файлов нет, переходите к следующему шагу, который показывает, как сгенерировать ключи SSH. Если они у вас есть, вы можете использовать существующие ключи, сделать их резервную копию и создать новую пару или перезаписать ее.
Шаг 1. Создайте пару ключей SSH
1. Первое, что вам нужно сделать, это сгенерировать пару ключей SSH на машине, на которой вы сейчас работаете.
В этом примере мы генерируем 4096-битную пару ключей. Мы также добавляем адрес электронной почты, но это необязательно. Команда такая:
ssh-keygen -t rsa -b 4096 -C «your_email@domain.com»
2. Затем введите место, где вы хотите сохранить ключи, или нажмите Enter, чтобы принять путь по умолчанию.
3. Также вам будет предложено установить кодовую фразу. Хотя это делает соединение еще более безопасным, оно может прерываться при настройке автоматизированных процессов. Поэтому вы можете ввести пароль или просто нажать Enter, чтобы пропустить этот шаг.
4. Затем в выводе сообщается, где хранятся идентификационный и открытый ключ, а также выдается отпечаток ключа.
5. Убедитесь, что вы успешно создали пару ключей SSH, выполнив команду:
Вы должны увидеть путь идентификационного ключа и открытого ключа, как на скриншоте ниже:
Шаг 2. Загрузите открытый ключ на удаленный сервер
Вы можете загрузить публичный SSH-ключ на удаленный сервер с помощью команды ssh-copy-id или команды cat.
Вариант 1. Загрузить открытый ключ с помощью команды ssh-copy-id
Чтобы включить беспарольный доступ, вам необходимо загрузить копию открытого ключа на удаленный сервер.
1. Подключитесь к удаленному серверу и используйте команду ssh-copy-id:
2. Открытый ключ автоматически копируется в файл .ssh/authorized_keys.
Вариант 2: загрузить открытый ключ с помощью команды cat
Другой способ скопировать открытый ключ на сервер — использовать команду cat.
1. Начните с подключения к серверу и создания на нем каталога .ssh.
ssh [remote_username]@[server_ip_address] mkdir -p .ssh
2. Затем введите пароль для удаленного пользователя.
3. Теперь вы можете загрузить открытый ключ с локальной машины на удаленный сервер. Команда также указывает, что ключ будет храниться под именем authorized_keys во вновь созданном каталоге .ssh:
cat .ssh/id_rsa.pub | ssh [remote_username]@[server_ip_address] ‘cat >> .ssh/authorized_keys’
Шаг 3. Войдите на сервер без пароля
После создания пары ключей SSH и загрузки открытого ключа на удаленный сервер вы должны иметь возможность подключаться к выделенному серверу без ввода пароля.
Проверьте, работает ли установка, выполнив команду:
Система должна напрямую входить в систему на удаленном сервере, пароль не требуется.
Примечание: убедившись, что вы можете подключаться к удаленному серверу SSH без пароля, рассмотрите возможность полного отключения аутентификации по паролю SSH. Это добавит еще один уровень безопасности и защитит ваш сервер от bruteforce атак.
Дополнительно: Устранение неполадок с разрешениями файлов удаленного сервера
Права доступа к файлам на удаленном сервере могут вызвать проблемы с входом в SSH без пароля. Это обычная проблема со старыми версиями SSH.
Если после выполнения всех шагов вам все еще предлагается ввести пароль, начните с редактирования прав доступа к файлам на удаленном сервере.
- Установите разрешения 700 для каталога .ssh.
- Установите разрешения 640 для каталога .ssh/authorized_keys.
Отредактируйте права доступа к файлу с помощью следующей команды:
ssh [remote_username]@[server_ip_address] «chmod 700 .ssh; chmod 640 .ssh/authorized_keys»
При появлении запроса введите свой пароль. Если действие было успешным, вывода не будет.
Если вы хотите автоматизировать обновления и другие задачи или беспрепятственно подключаться к удаленному серверу по SSH, вам следует включить вход по SSH без пароля. Инструкции в этой статье должны помочь вам в этом.
Источник