Как ssh к localhost без пароля? - PullRequest
       21

Как ssh к localhost без пароля?

53 голосов
/ 16 сентября 2011

РЕДАКТИРОВАТЬ: положить точно, что было сделано

Мне нужно 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

EDIT3: Результат добавления из $ 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: 

Ответы [ 10 ]

129 голосов
/ 20 мая 2013

Я выполнил 3 шага, чтобы создать пароль без логина

1. ssh-keygen -t rsa
Press enter for each line 
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. chmod og-wx ~/.ssh/authorized_keys 
16 голосов
/ 16 сентября 2011

Обнаружили проблему.

Запуск сервера с отладкой:

$sshd -Dd

Я обнаружил, что не удалось прочитать auth_key

$chmod 750 $HOME

Исправлено.

13 голосов
/ 25 мая 2012

Другой возможный ответ: файл author_keys может существовать и быть доступным для чтения.Но если он доступен для групповой или мировой записи, он все равно запросит пароль.Ответ на эту проблему:

chmod og-wx ~/.ssh/authorized_keys
5 голосов
/ 08 февраля 2017

Два простых шага:

ssh-keygen -t rsa <Press enter for each line>
ssh-copy-id localhost

Введите пароль, и все готово.

5 голосов
/ 11 мая 2015

Выполните следующие шаги

ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.

Используйте файл по умолчанию и пустую фразу-пароль (просто нажмите ввод в следующих 2 шагах)

# start the ssh-agent in the background
eval "$(ssh-agent -s)"
# Agent pid 59566
ssh-add 

Скопируйте содержимое ~ / .ssh / id_rsa.pub в ~ / .ssh / authorized_keys

Убедитесь, что следующие разрешения

 ls -l .ssh/
 total 20
-rw-r--r--. 1 swati swati  399 May  5 14:53 authorized_keys
-rw-r--r--. 1 swati swati  761 Jan 12 15:59 config
-rw-------. 1 swati swati 1671 Jan 12 15:44 id_rsa
-rw-r--r--. 1 swati swati  399 Jan 12 15:44 id_rsa.pub
-rw-r--r--. 1 swati swati  410 Jan 12 15:46 known_hosts 

Также убедитесь, что разрешения для каталога .ssh. Это также важно

drwx------.   2 swati swati    4096 May  5 14:56 .ssh
1 голос
/ 19 сентября 2018

На Centos 7

РЕШЕНИЕ

1 create rsa key
2 vim /etc/ssh/ssh_config
3
#   IdentityFile ~/.ssh/identity
uncoment this line > IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa

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

ssh-copy-id для имени пользователя @ localhost

1 голос
/ 07 сентября 2018

Я решил проблему входа в SSH таким способом.

Я генерирую пары ключей на стороне сервера, а затем возвращаю закрытый ключ обратно на свой компьютер с Windows 10, и теперь я могу войти без пароля.

Раньше я использовал пары ключей, сгенерированные моим ноутбуком с Windows 10, и не было никакой удачи.

1 голос
/ 19 ноября 2017

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

Если вы видите «Агент ключа SSH», снимите флажок Перезагрузите компьютер и подключитесь к localhost.
1 голос
/ 07 сентября 2017

как принятый ответ, если вы считаете проблему

    Agent admitted failure to sign using the key.

, вам необходимо

    ssh-add
1 голос
/ 01 марта 2017

Правильный и безопасный способ сделать это - скопировать ключи, как было сказано здесь.

В других случаях sshpass может быть полезным.

sshpass -p raspberry ssh pi@192.168.0.145

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

это можно комбинировать с

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no pi@192.168.0.145

, чтобы избежать подтверждениявопросы, препятствующие выполнению сценариев.

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

https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...