Ssh без пароля не работает

Я пытался настроить ssh без пароля b / w A к B и B к A также.Сгенерировал открытый и закрытый ключи с помощью ssh-keygen -trsa на обеих машинах.Использовал ssh-copy-id утилита для копирования открытых ключей из A к B так же как B к A.

SSH без пароля работает с A к B но not от B к A. Я проверил разрешения папки ~ /ssh / и, похоже, все в порядке.

A's .ssh права доступа к папкам:

-rw-------  1 root root 13530 2011-07-26 23:00 known_hosts-rw-------  1 root root   403 2011-07-27 00:35 id_rsa.pub-rw-------  1 root root  1675 2011-07-27 00:35 id_rsa-rw-------  1 root root   799 2011-07-27 00:37 authorized_keysdrwxrwx--- 70 root root  4096 2011-07-27 00:37 ..drwx------  2 root root  4096 2011-07-27 00:38 .

B's .ssh права доступа к папкам:

-rw------- 1 root root  884 2011-07-07 13:15 known_hosts-rw-r--r-- 1 root root  396 2011-07-27 00:15 id_rsa.pub-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keysdrwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..drwx------ 2 root root 4096 2011-07-27 00:15 .

A is an ubuntu 10.04 (OpenSSH_5. 3p1 Debian-3ubuntu4, OpenSSL 0.9.8 k 25 марта 2009) B это машина debian (OpenSSH_5. 1p1 Debian-5, OpenSSL 0.9.8 g 19 Oct 2007)

От A:

#ssh B

работает нормально.

От B:

#ssh -vvv A ......debug1: SSH2_MSG_SERVICE_ACCEPT receiveddebug2: key: /root/.ssh/identity ((nil))debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)debug2: key: /root/.ssh/id_dsa ((nil))debug3: Wrote 64 bytes for a total of 1127debug1: Authentications that can continue: publickey,passworddebug3: start over, passed a different list publickey,passworddebug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,passworddebug3: authmethod_lookup publickeydebug3: remaining preferred: keyboard-interactive,passworddebug3: authmethod_is_enabled publickeydebug1: Next authentication method: publickeydebug1: Trying private key: /root/.ssh/identitydebug3: no such identity: /root/.ssh/identitydebug1: Offering public key: /root/.ssh/id_rsadebug3: send_pubkey_testdebug2: we sent a publickey packet, wait for replydebug3: Wrote 368 bytes for a total of 1495debug1: Authentications that can continue: publickey,passworddebug1: Trying private key: /root/.ssh/id_dsadebug3: no such identity: /root/.ssh/id_dsadebug2: we did not send a packet, disable methoddebug3: authmethod_lookup passworddebug3: remaining preferred: ,passworddebug3: authmethod_is_enabled passworddebug1: Next authentication method: passwordroot@192.168.122.1's password: 

Что, по сути, означает, что он не проверяет подлинность с помощью файла /root/id_rsa. Я запустил ssh-add командуйте также на обеих машинах.

Аутентификационная часть /etc/ssh/sshd_config файл является

# Authentication:LoginGraceTime 120PermitRootLogin yesStrictModes yesRSAAuthentication yesPubkeyAuthentication yes#AuthorizedKeysFile     %h/.ssh/authorized_keys# Don't read the user's ~/.rhosts and ~/.shosts files

У меня заканчиваются идеи.Любая помощь была бы признательна.

После настройка ssh без пароля, меня все еще спрашивали мой пароль пользователя. Глядя на /var/log/auth.log на удаленной машине указал на проблему:

sshd[4215]: Authentication refused: bad ownership or modes for directory /home/<user>

Итак, убедитесь, что все сделано правильно:

chmod o-w ~/chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

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

Кроме того, проверьте /etc/ssh/ssd_config для обеспечения того, чтобы RSAAuthentication и PubkeyAuthentication опции не отключены. Значение по умолчанию равно yes так что это не должно быть проблемой.

Просто убедитесь, что вы выполнили следующую процедуру:

На Машине A

откройте терминал и введите следующие команды:

root@aneesh-pc:~# id

Просто чтобы убедиться, что мы правы.

Если приведенная выше команда выводит что-то вроде приведенного ниже, мы являемся root, иначе переключимся на root, используя su команда

uid=0(root) gid=0(root) groups=0(root)

1) Создайте ключи.

ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:49:7d:30:7d:67:db:58:51:42:75:78:9c:06:e1:0c:8d root@aneesh-pcThe key's randomart image is:+--[ RSA 2048]----+|          ooo+==B||         . E=.o+B||        . . .+.*o||       . . .  ...||        S        ||                 ||                 ||                 ||                 |+-----------------+

Я не использовал никакой кодовой фразы. Если он вам нужен, вы можете им воспользоваться.

2) Скопируйте открытый ключ на компьютер B .ssh/authorized_keys файл

root@aneesh-pc:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@mylaproot@mylap's password: 

Теперь попробуйте войти в систему с помощью ssh 'root@mylap', и зарегистрируйся в:

~/.ssh/authorized_keys

чтобы убедиться, что мы не добавили дополнительные ключи, которых вы не ожидали.

Замените mylap именем хоста или IP-адресом компьютера, на который вы хотите войти (например, компьютер B).

3) Войдите в B без пароля

root@aneesh-pc:~# ssh root@mylapWarning: Permanently added 'mylap,192.168.1.200' (RSA) to the list of known hosts.Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64) * Documentation:  https://help.ubuntu.com/Last login: Wed Jul 27 15:23:58 2011 from streaming-desktop.localaneesh@mylap:~$

На машине B

4) Создайте ключи для повторного входа на компьютер A

root@mylap:~# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:35:9f:e7:81:ed:02:f9:fd:ad:ef:08:c6:4e:19:76:b1 root@streaming-desktopThe key's randomart image is:+--[ RSA 2048]----+|                 ||                 ||          o   .  ||         . + + o ||        S o * E  ||           = O . ||            O +  ||           + o o.||            . o+=|+-----------------+

5) Скопируйте открытый ключ на компьютер A .ssh/authorized_keys файл

root@mylap:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@aneesh-pcWarning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.root@aneesh-pc's password: 

Теперь попробуйте войти в систему с помощью ssh 'root@aneesh-pc', и зарегистрируйся в:

.ssh/authorized_keys

чтобы убедиться, что мы не добавили дополнительные ключи, которых вы не ожидали.

6) Войдите в систему без пароля

ssh root@aneesh-pcWarning: Permanently added 'aneesh-pc,192.168.1.20' (RSA) to the list of known hosts.Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic x86_64) * Documentation:  https://help.ubuntu.com/Last login: Tue Jul 26 18:52:55 2011 from 192.168.1.116

Если вы в состоянии выполнить эти шаги, все готово. Теперь у вас есть две машины с включенным ssh-ключом (открытым ключом) для входа в систему.

Вероятно, просто проблема с разрешениями более высокого уровня. Вам нужно удалите разрешения на запись из группы и других в ваш домашний каталог и каталог .ssh. Чтобы исправить эти разрешения, запустите chmod 755 ~ ~/.ssh или chmod go-w ~ ~/.ssh.

Если у вас все еще возникают проблемы, введите следующий grep в свой журнал:

sudo egrep -i 'ssh.*LOCAL_USER_NAME' /var/log/secure

(заменить LOCAL_USER_NAME с вашим локальным именем пользователя...)

Мы надеемся, что это должно рассказать вам больше о вашей проблеме, предполагая, что информация об аутентификации sshd записывается в защищенный журнал, который должен быть по умолчанию. Если вы видите ошибки, которые выглядят следующим образом:

ДАТА ИМЯ ХОСТА sshd[1317]: отказано в аутентификации: неправильное владение или режимы для каталога /path/to/some/directory

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

Что касается причины, по которой вам нужно будет ограничить права на запись в ваш домашний каталог (даже если разрешения уже ограничены для вашего .ssh и последующих каталогов), это позволит другим пользователям переименовывать ваш .ssh каталог и создавать новый - хотя это было бы непригодно для использования как есть (из-за неправильных разрешений) исправление для большинства пользователей, вероятно, заключалось бы в изменении разрешений, а не в проверке содержимого каталога...

ДВДНР: Разрешение доступа на запись для группы и / или других пользователей в ваш домашний каталог приведет к принудительному вводу пароля ssh.

используете ли вы учетную запись root на каждом компьютере? Обычно в Ubuntu вы используете учетную запись пользователя и предоставляете ей права sudo по мере необходимости.

Если вы используете пользователя, не являющегося root sudo chown $USER -R ~/.ssh может решить вашу проблему

Другие вещи, которые нужно проверить:

дважды проверьте, что B id_rsa.pub находится в А authorized_keys.

проверьте пятерки /etc/ssh/sshd_config содержит

PermitRootLogin yesRSAAuthentication yesPubkeyAuthentication yes

в /etc/ssh/sshd_config на targetchange

PermitRootLogin нет

к

PermitRootLogin да

затем отключите свой sshd PID:

root@dzone2 # ps-ef / grep ssh root 28075 27576 0 Nov 17? 6: 11 / usr / lib / ssh/sshd

root 17708 20618   0 10:09:30 pts/37      0:00 grep ssh root@dzone2 # kill -HUP 28075 root@dzone2 # ps -ef|grep sshroot 17861 20618   0 10:09:44 pts/37      0:00 grep sshroot 17852 27576   0 10:09:42 ?           0:00 /usr/lib/ssh/sshd

Какова настройка PermitRootLogin в /etc/ssh/sshd_config на A?

@taneli: да, в противном случае пользователю не будет предложено ввести пароль.

В моем случае мне пришлось раскомментировать “IgnoreUserKnownHosts yes” в файле “/etc/ssh/sshd_config” в ubuntu 12.04