Как настроить ssh-ключи для входа в мой RPi?

15

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

Это особенно удобно, если вы хотите войти из автоматизированных скриптов или использовать такие программы, как scp или rsync

Итак, как мне настроить ssh-ключи для входа в мой RPi?

Джон Ла Рой
источник
Очень похожий вопрос / ответ здесь .
Jivings

Ответы:

16

Linux

Если вы никогда раньше не слышали о ssh-ключах, вам нужно сгенерировать такой

$ ssh-keygen -t dsa

Это создает каталог ~/.ssh/и хранит файлы ключей

$ ls -l .ssh/
-rw------- 1 gnibbler gnibbler 668 Aug 22  2004 .ssh/id_dsa
-rw------- 1 gnibbler gnibbler 603 Aug 22  2004 .ssh/id_dsa.pub

Вам нужно скопировать id_dsa.pubв RPi. Существует очень простой способ сделать это, используя вспомогательный скрипт.

$ ssh-copy-id -i ~/.ssh/id_dsa.pub pi@raspberrypi.local

Вам нужно будет ввести piпароль пользователя в последний раз

При следующем входе в систему вам не будет предложено ввести пароль

$ ssh pi@raspberrypi.local
Linux raspberrypi 3.1.9+ #174 PREEMPT Sun Jul 22 19:04:28 BST 2012 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Type 'startx' to launch a graphical session

Как отключить пароль паролей?

После того, как вы настроили логин на основе ключей, вам больше не нужно входить с паролем; Вы можете отключить его, что гораздо безопаснее.

  1. Сначала войдите в свой Raspberry Pi и откройте /etc/ssh/sshd_configкак root; например, запустить sudo vim /etc/ssh/sshd_config.

  2. Найдите строку, содержащую PasswordAuthentication; это, вероятно, читает #PasswordAuthentication yes.

  3. Измените эту строку, чтобы она читала

    ПарольАутентификация нет

  4. Перезагрузите свой Raspberry Pi или просто sshd.

Arch Linux

Чтобы перезапустить sshdна Arch, запустите sudo rc.d restart sshd.

Debian / Raspbian

Чтобы перезапустить sshdдистрибутивы на основе Debian, запустите sudo /etc/init.d/sshd restart.

Джон Ла Рой
источник
Помните, что ssh без пароля следует использовать только в том случае, если вы знаете, что соединение уже защищено . В противном случае вы подвергаете себя риску сэкономить 10 секунд.
Jivings
@Jivings Объясните? Ключи всегда более безопасны, чем пароли.
Алекс Чемберлен
@gnibbler Согласны ли вы отредактировать, как отключить пароли?
Алекс Чемберлен
@AlexChamberlain, конечно
Джон Ла Рой
@AlexChamberlain Этот ответ говорит о том, как настроить ключи без пароля. Это то, что я имел в виду
Jivings