РЕДАКТИРОВАТЬ: положить именно то, что было сделано.
Мне нужно SSH, чтобы localhost
без пароля обычный способ сделать это (с открытыми ключами) не работает.
user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
user@PC:~$ ls .ssh/
id_rsa id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh-agent $SHELL
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE
user@PC:~$ ssh-copy-id -i localhost
user@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@PC:~$ ssh localhost echo 'testing'
user@localhost's password:
user@PC:~$
Итак, как вы можете видеть в последней команде, она все еще спрашивает пароль !!! Как я могу это исправить ?? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Добавление некоторой информации о sshd
user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes
#KerberosAuthentication no
#GSSAPIAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
РЕДАКТИРОВАТЬ 3: результат Ading от $ ssh -vv localhost
$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password:
EDIT4:
Просто проверяю, совпадают ли файлы, и md5sum согласен
RSAAuthentication yes
иPubkeyAuthentication yes
в вашем / etc / ssh / sshd_config? Что показывает ssh -vv localhost? Я только что попробовал это на коробке 10.04, и у меня не было проблем ..Ответы:
Прежде всего, вы должны понимать, что вы делаете:
Вы копируете открытый ключ
.ssh/id_rsa.pub
через ssh на тот же хост (то есть локальный хост, тот же хост). Если вы замените егоlocalhost
другим хостом, это будет иметь больше смысла (но если вы пытаетесь это сделать, чтобы узнать, как это сделать, это нормально).Как только у вас есть копия вашего открытого ключа на удаленном хосте (или тот же, на котором вы находитесь), вы должны убедиться, что используете его для аутентификации, на вашем реальном хосте, вызывая
ssh-agent
/ssh-add
:Затем, если вы предоставили ключевую фразу, вам будет предложено ввести ее после
ssh-add
. Если вы сгенерировали закрытый ключ без ключевой фразы, то это все.источник
ssh-add
, пожалуйста, отредактируйте ваш вопрос и поставьте все, что вы сделали Чем больше информации вы дадите, тем лучше и быстрее ответ.eval
"?Обнаружили проблему.
Запуск сервера с отладкой:
Я обнаружил, что не смог прочитать auth_key
Починил это.
источник
Сделайте следующие шаги
Используйте файл по умолчанию и пустую фразу-пароль (просто нажмите Enter в следующих 2 шагах)
Скопируйте содержимое ~ / .ssh / id_rsa.pub в ~ / .ssh / authorized_keys
Убедитесь, что следующие разрешения
Кроме того, убедитесь, что разрешения для каталога .ssh. Это тоже важно
источник
authorized_keys
на 0600 решает проблему, в то время как разрешение.ssh
каталога не влияет на sshing localhostУпростите настройку сервера
Я думаю, что вам может потребоваться отключить аутентификацию на основе пароля. Это sshd_config я использую
Сначала попробуйте что-нибудь минимальное, а затем добавьте к нему, если вам нужны дополнительные возможности.
Обновить:
Проверьте логи сервера
Из вашего EDIT3 я вижу, что аутентификация с открытым ключом завершается неудачей, прежде чем клиент попытается выполнить аутентификацию на основе пароля. Системный журнал вашего сервера может содержать некоторые сообщения от sshd, которые проливают некоторый свет на это.
Перезагрузить измененные конфиги
Не забудьте дать сигнал
sshd
перезагрузить любые изменения конфигурации. Напримерkill -HUP $(cat /etc/sshd.pid)
источник
Относительно вышеупомянутого поста, столкнувшись с той же проблемой, я просто изменил строку
в файле / etc / ssh / sshd_config, и это сработало.
Более того, возможно, лучше использовать
перезагрузить изменения конфигурации sshd.
источник
Другое решение для Red Hat Enterprise Linux 6.5 SELinux, не позволяющее sshd читать $ HOME / .ssh, - это использовать restorecon, см. Мой ответ здесь /superuser//a/764020/213743 .
источник
Для меня это было так просто, как
источник
У меня была та же проблема, я сделал следующие 3 шага, чтобы создать пароль без логина, и он работает нормально
источник