Ответ 1
Я сделал следующие 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
РЕДАКТИРОВАТЬ: Внесение того, что было сделано
Мне нужно SSH localhost без пароля, обычный способ сделать это (с открытыми ключами) не работает.
[email protected]:~$ rm -rf .ssh/*
[email protected]:~$ 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:
[email protected]:~$ ls .ssh/
id_rsa id_rsa.pub
[email protected]:~$ 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.
[email protected] 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.
[email protected]:~$ ssh-agent $SHELL
[email protected]:~$ ssh-add -L
The agent has no identities.
[email protected]:~$ ssh-add
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
[email protected]:~$ ssh-add -L
ssh-rsa ...MY KEY HERE
[email protected]:~$ ssh-copy-id -i localhost
[email protected] 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.
[email protected]:~$ ssh localhost echo 'testing'
[email protected] password:
[email protected]:~$
Итак, как вы можете видеть в последней команде, он все еще спрашивает пароль! Как я могу это исправить? Ubuntu-10.04, OpenSSH_5.3p1
EDIT2:
Добавление некоторой информации о sshd
[email protected]:~$ 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: результат 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
[email protected] password:
Я сделал следующие 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
Обнаружили проблему.
Запуск сервера с отладкой:
$sshd -Dd
Я обнаружил, что он не смог прочитать auth_key
$chmod 750 $HOME
Исправлено.
Другой возможный ответ: файл authorized_keys может существовать и быть читаемым. Но если это групповой или всемирный доступ, он все равно будет запрашивать пароль. Ответ на эту проблему:
chmod og-wx ~/.ssh/authorized_keys
Выполните следующие шаги
ssh-keygen -t rsa -C "[email protected]"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
Использовать файл по умолчанию и пустую кодовую фразу (просто нажмите enter в следующих двух шагах)
# 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
Два простых шага:
ssh-keygen -t rsa <Press enter for each line>
ssh-copy-id localhost
Введите пароль, и все готово.
Правильный и безопасный способ сделать это - скопировать ключи, как было сказано здесь.
В других случаях sshpass
может быть удобно.
sshpass -p raspberry ssh [email protected]
Имейте в виду, что это небезопасно. Несмотря на то, что это не рекомендуется использовать в защищенных средах, это может быть полезно для сценариев, автоматизированного тестирования...
это можно объединить с
ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
чтобы избежать вопросов подтверждения, которые не позволяют выполнять сценарии.
Опять же, используйте это только в системах разработки, где разные компьютеры используют IP-адрес, а безопасность не важна.
https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/
как это сделал принятый ответ, если вы столкнулись с проблемой
Agent admitted failure to sign using the key.
вам нужно
ssh-add
Я столкнулся с такой же проблемой даже после выполнения всех рекомендаций, но выяснил, что проблема связана с помехами gnome-keyring.
Решение:
Я решил проблему входа в SSH таким образом.
Я генерирую пары ключей на своей стороне сервера, а затем возвращаю закрытый ключ на мой компьютер с Windows 10, и теперь я могу войти без пароля.
Ранее я использовал пары ключей, сгенерированные моим ноутбуком с Windows 10, и мне не повезло.
На 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
есть какие-нибудь ответы? у меня проблема: ssh localhost введите пароль для ключа '/Users/admin/.ssh/id_rsa':