首先是使用用户名(默认为pi)和密码SSH登陆到你的树莓派,这个相信大家都知道。

1.公钥和私钥的生成
登陆后就让设备自己生成密钥吧,输入如下代码,如果需要免密码登陆,那就一直回车就好。
ssh-keygen
过后你会发现,在你的用户目录(/home/pi)下会生成.ssh文件夹,里面会有id_rsa和id_rsa.pub两个文件,这两个文件就是我们所用的私钥和公钥。

再执行如下命令,生成公钥的授权key,输入完成后.ssh文件夹中会出现authorized_keys这个文件

  1. cd ~/.ssh
  2. cat id_dsa.pub >> ~/.ssh/authorized_keys

2.权限的设置
设置.shh文件夹的权限为0700,好像默认就是0700,不过还是贴出来

  1. cd ~
  2. chmod 700 -R .ssh

设置authorized_keys权限为0600。

  1. cd ~/.ssh
  2. chmod 600 authorized_keys

最后获得的权限如下图所示,你也可以直接winscp上修改权限。

3.设置HASS访问
设置其实只需要拷贝id_rsa文件进入/home/homeassistant/.ssh文件夹中即可,拷贝有很多方法,我不累述,我是直接用winscp复制的。
复制完成后将文件的权限设为0600(默认复制后和源文件一样的权限)。
这里需要注意,需要将文件的拥有者改为homeassistant用户,设置如下所示。(我是将所有文件都拷贝过来了)

4.树莓派访问设置
需要修改的文件位于/etc/ssh文件夹中,修改的文件分别为ssh_config和sshd_config。
ssh_config文件中将,如下的三行前面的#去除

  1. IdentityFile ~/.ssh/identity
  2. IdentityFile ~/.ssh/id_rsa
  3. IdentityFile ~/.ssh/id_dsa

sshd_config文件中将如下三行前面的#去除

  1. RSAAuthentication yes
  2. PubkeyAuthentication yes
  3. AuthorizedKeysFile %h/.ssh/authorized_keys

5.重启ssh服务
输入如下代码:
sudo /etc/init.d/ssh restart
过后你就可以使用HASS里面的重启树莓派命令了。

最后,最最重要的是要用你的homeassistant账户ssh登陆一次树莓派才行。
登陆方式为

  1. sudo su -s /bin/bash homeassistant
  2. ssh pi@树莓派IP127.0.0.1

过后提示选择yes,下次系统就会记住上次的配置情况,实现hass免密登陆

文档更新时间: 2017-10-15 21:12   作者:Tristan