首先是使用用户名(默认为pi)和密码SSH登陆到你的树莓派,这个相信大家都知道。
1.公钥和私钥的生成
登陆后就让设备自己生成密钥吧,输入如下代码,如果需要免密码登陆,那就一直回车就好。ssh-keygen
过后你会发现,在你的用户目录(/home/pi)下会生成.ssh文件夹,里面会有id_rsa和id_rsa.pub两个文件,这两个文件就是我们所用的私钥和公钥。
再执行如下命令,生成公钥的授权key,输入完成后.ssh文件夹中会出现authorized_keys这个文件
cd ~/.ssh
cat id_dsa.pub >> ~/.ssh/authorized_keys
2.权限的设置
设置.shh文件夹的权限为0700,好像默认就是0700,不过还是贴出来
cd ~
chmod 700 -R .ssh
设置authorized_keys权限为0600。
cd ~/.ssh
chmod 600 authorized_keys
最后获得的权限如下图所示,你也可以直接winscp上修改权限。
3.设置HASS访问
设置其实只需要拷贝id_rsa文件进入/home/homeassistant/.ssh文件夹中即可,拷贝有很多方法,我不累述,我是直接用winscp复制的。
复制完成后将文件的权限设为0600(默认复制后和源文件一样的权限)。
这里需要注意,需要将文件的拥有者改为homeassistant用户,设置如下所示。(我是将所有文件都拷贝过来了)
4.树莓派访问设置
需要修改的文件位于/etc/ssh文件夹中,修改的文件分别为ssh_config和sshd_config。
ssh_config文件中将,如下的三行前面的#去除
IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa
sshd_config文件中将如下三行前面的#去除
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
5.重启ssh服务
输入如下代码:sudo /etc/init.d/ssh restart
过后你就可以使用HASS里面的重启树莓派命令了。
最后,最最重要的是要用你的homeassistant账户ssh登陆一次树莓派才行。
登陆方式为
sudo su -s /bin/bash homeassistant
ssh pi@树莓派IP(127.0.0.1)
过后提示选择yes,下次系统就会记住上次的配置情况,实现hass免密登陆