Я хочу, чтобы иметь возможность войти в систему с помощью SSH без необходимости все время вводить пароль.
- Как мне это настроить?
- Требуется ли другая команда для выполнения сеанса без пароля?
ssh
authentication
Oxwivi
источник
источник
Ответы:
Ответ
Выполните следующие команды:
Затем вам нужно будет скопировать новый ключ на ваш сервер :
После того, как ключ скопирован, ssh в машину как обычно:
Теперь вы можете войти без ввода пароля с конкретной машины, на которой вы выполняли команды.
пример
объяснение
Это предполагает, что вы уже можете успешно подключиться к вашему серверу через SSH.
Вам нужно будет создать пару ключей SSH, которая позволит вам идентифицировать себя как самого себя без использования пароля. Вы можете выбрать защиту ключей с помощью пароля, если хотите, но это можно оставить пустым, чтобы получить доступ по SSH без пароля.
ssh-keygen
это создастid_rsa
иid_rsa.pub
файл.pub
Файл , что происходит на серверах, закрытый ключ (id_rsa
) является то , что остается с вами и как вы отождествляете себя.ssh-copy-id user@server
заменив пользователя удаленным пользователем, а на сервере - DNS-имя или IP-адрес компьютера. Он запросит ваш пароль SSH, введите его, и, если все будет успешно завершено, вы сможете получить доступ к компьютеруssh user@server
без пароля.Рекомендации
источник
ssh-keygen
следуя инструкциям на экране, а затем набратьssh-copy-id user@server
замену пользователя на удаленного пользователя и сервер на удаленном компьютереssh-copy-id "not-marco@127.0.0.1 -p 1234"
.Введите следующие команды:
ssh-keygen
Нажмите Enterклавишу, пока не получите подсказку
ssh-copy-id -i root@ip_address
(Однажды будет запрошен пароль от хост-системы)
ssh root@ip_address
Теперь вы сможете войти без пароля.
источник
Я обычно делаю это следующим образом:
ssh-keygen -t rsa
(При запросе пароля оставьте его пустым)
Затем:
cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'
(Для этого требуется, чтобы папка .ssh находилась в домашнем каталоге на целевом имени хоста, с файлом авторизованных ключей).
Конечно, замените имя пользователя на желаемое имя пользователя, а имя хоста на желаемое имя хоста или IP-адрес
После этого просто SSH к этой коробке, как вы привыкли.
источник
touch
иchmod
в ответе Ринзвинда?.ssh/authorized_keys
будет изменить файл до 0600, иначе это не сработаетЯ обычно использую
sshpass
для этого, установить егоsudo apt-get install sshpass
и использовать как этоисточник
sshpass
очень полезны в тех случаях, когда вы не можете изменить метод аутентификации на удаленном сервере!https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication
источник
PasswordAuthentication no
на всех пользователей? Если нет, то как отключить его для обычных пользователей, но оставить его неизменным для root, пока я его тестирую? Я на самом деле не хочу, чтобы foobar это и заблокировать себя полностью.Permission denied (publickey).
сPasswordAuthentication no
. Что мне делать? Я изменяюPasswordAuthentication no
на другом хосте?Это решение специально для пользователей, использующих Windows для подключения к своим удаленным компьютерам, включая облачные образы в AWS Cloud и GCE Cloud.
отказ
Недавно использовал это решение для удаленного входа в систему новых развернутых образов VM на GCE.
Используемые инструменты:
puttygen
замазка скачатьwinscp
Winscp скачатьШаги для выполнения:
Как это сделать:
1. Сгенерируйте ключ / пару или используйте существующий закрытый ключ
Если у вас есть личный ключ:
Откройте
puttygen
, нажмите кнопку загрузки и выберите файл с секретным ключом (*.pem
).Если у вас нет личного ключа:
puttygen
,(из источника 1, ссылка приведена ниже)
2. Создайте новый файл authorized_keys (с
notepad
)Скопируйте данные вашего открытого ключа из раздела «Открытый ключ для вставки в OpenSSH файл авторизованных ключей» в генераторе ключей PuTTY и вставьте данные ключа в
authorized_keys
файл.Убедитесь, что в этом файле только одна строка текста.
3. Загрузите ключ на сервер Linux
Загрузите файл author_keys в домашнюю директорию на удаленном компьютере.
4. Установите правильные разрешения
Сделать
.ssh
каталог (если не существует)Скопируйте
authorized_keys
файл в.ssh
каталог.(это заменит любой существующий
authorized_keys
файл, обратите внимание на это).Если файл существует, просто добавьте содержимое этого файла в существующий файл.
Запустите команды для установки разрешений:
Теперь вы сможете подключаться к
ssh
удаленной машине без ввода учетных данных каждый раз.Дальнейшее чтение:
Генерация и загрузка ключей SSH под Windows
Проверка подлинности сертификатов ключей OpsenSSH PEM PUB CRT
источник
Если вы создаете открытую пару ключей и входите в систему с помощью нашего вновь созданного открытого ключа, вам не нужно будет вводить пароль. В зависимости от конфигурации вашего связки ключей и / или агента ssh вам может потребоваться защитить ваш ключ парольной фразой.
Вот один из многих коротких инструкций для вас. Для безопасности этого метода крайне важно, чтобы сгенерированный закрытый ключ оставался закрытым! Вы никогда не должны делиться этим с кем-либо или разрешать доступ к нему в любом качестве.
Эта команда генерирует достаточно сильный ключ в
~/.ssh/
:В нем
~/.ssh/
вы найдете свой открытый ключ какid_rsa.pub
. Его содержимое должно быть добавлено вauthorized_keys
файл вашего сервера путем его переноса через переносной носитель (флеш-накопитель) или путем кратковременного включения аутентификации по паролю на сервере, затем с использованиемssh-copy-id ~/.ssh/id_rsa.pub username@server
и последующим отключением.Если вы решили защитить свой ключ парольной фразой (на первом шаге), вы можете использовать
ssh-agent
или Ubuntu keyring, чтобы защитить этот код локально, чтобы вам не приходилось вводить его все время.источник
Чтобы сделать некоторые дополнения:
Mac по умолчанию не имеет
ssh-copy-id
, вам придется установить его самостоятельно:найти больше здесь: https://github.com/beautifulcode/ssh-copy-id-for-OSX
если вы сделали переадресацию портов, команда должна выглядеть следующим образом:
обратите внимание, что цитаты необходимы.
источник
Удаленный вход / копирование без ввода пароля
Приложения
ssh
иscp
для удаленного входа в систему и для удаленного копирования, соответственно, позволяют общаться с удаленным хостом без ввода пароля. Это требует, чтобы вы следовали процедуре аутентификации, подобной описанной ниже. Под клиентом мы подразумеваем машину, на которой вы сидите, а под сервером - машину, на которую вы хотите войти без ввода пароля. Шаги процедуры аутентификации:$HOME/.ssh
.$HOME/.ssh/authorized_keys
или$HOME/.ssh/authorized_keys2
на сервер.Существует три разных типа протоколов аутентификации. Вы указываете тип при запуске ssh-keygen:
chmod 0700
быть гарантированно недоступен для чтения другим пользователям) и identity.pub (открытый ключ).ssh-keygen -t rsa
и приводит к файламid_rsa
(закрытый ключ) иid_rsa.pub
(открытый ключ)ssh-keygen -t dsa
и приводит к файламid_dsa
(закрытый ключ) иid_dsa.pub
(открытый ключ)При запуске ssh-keygen вы можете полагаться на ответы по умолчанию (это означает, что вы не даете парольную фразу). Это делает всю установку простой, но и небезопасной.
Вы можете указать тип ключей, которые будут использоваться опцией ssh ;
ssh -1
Использование силы RSA1 ключей (протокол версии 1), в то время какssh -2
силы SSH , чтобы попытаться RSA или DSA только ключи (протокол версии 2). В приведенных ниже примерах мы генерируем и устанавливаем ключи RSA1 и DSA на удаленном хосте, чтобы обеспечить большую гибкость. Вы можете сделать файл конфигурации в вашем.ssh
каталоге с помощью строкиЭто заставляет ssh попробовать установить соединение RSA1 (версия протокола 1) перед RSA / DSA (версия протокола 2).
Использование ключей RSA1
Использование ключей DSA
Это все, что вам нужно сделать, если вы не использовали ключевую фразу при генерации ключей. Вы можете проверить соединение, запустив ssh $ remote и посмотреть, сможете ли вы войти в систему без ввода пароля (вам может потребоваться использовать
-1
или в-2
качестве опции ssh ). Конечно, эту процедуру можно повторить для любой машины, на которую вы хотите войти.Если вы использовали фразу-пароль, вам нужно будет запустить программу,
ssh-agent
чтобы запустить специальную оболочку, а затемssh-add
зарегистрировать комбинацию ключ / фраза-парольsshd
. Смотрите man-страницы для этих программ для получения дополнительной информации.Скрипт для автоматизации беспарольных соединений:
ssh-no-password.sh
скопировано с: http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html
источник
Я хотел бы добавить ответ для тех, кто может найти, что должен ввести пароль, даже если они прочитали все ответы здесь, потому что вы установили IdentitiesOnly как да. И ответ здесь может сэкономить вам много времени на управление несколькими ключами, будь то ключи для git или сервера.
После того, как я сгенерировал ключ и скопировал его на сервер:
Я обнаружил, что это не сработало.
Затем я пошел, чтобы проверить
~/.ssh/config
файл на клиенте, я увидел это внизу:Тогда я добавлю это выше:
Я могу просто войти, введя
ssh somename
.Затем вы можете добавить несколько ключей SSH, используя ваши любимые имена, и вам нужно всего лишь добавить настройки, такие как четыре строки в файле конфигурации.
Хост - это имя, которое вы хотели бы ввести при последующем подключении к серверу; HostName - это IP-адрес сервера; Пользователь - это имя пользователя, которое вы регистрируете на сервере; а файл идентификации - это файл, в котором вы храните сгенерированный вами ключ.
источник