在设置的时候,我们经常需要拷贝文件到HA里或者执行一些命令。这个时候我们可以通过SSH来访问HA,设置方法如下:


        一、生成密钥

        想通过Putty、WinSCP、MobaXterm、SmartTTY等SSH工具访问HA的话, 首先从Putty官网下载Putty工具包(你也可以只下载Puttygen.exe用来生成密钥),下载地址如下: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html, 然后解压后用其中的puttygen 生成自己的密钥(具体点击“Generate”按钮),

        image.png

        Key Comment是备注注释用的, 用来区分密钥的,可以修改,不影响密钥的使用

        KeyPassphrase和ConfirmPassphrase是用来保护密钥的,建议输入,否则只要有人取得你的私钥,即可无密码登陆,这样的非常危险的。

        接着点击Save Public Key保存公钥文件为authorized_keys(注意这个文件没用扩展名),点击Save Private Key保存私钥文件,文件名自定义(扩展名是ppk),我保存的为ha.ppk。

        (如果你不用putty访问,而是想用Xshell,或者其他软件访问ssh的话,在PuttyGen界面的有个Conversions的菜单,在这里我们可以把ppk格式转为其他的格式。)

        同时你得将publicKey框中的所有内容拷贝下来,以便后面使用(当然你也可以从authorized_keys里面拷贝,但是格式上需要做稍许变化)。


二、 安装并设置SSH Server(访问Docker内的文件,如果想访问主系统,请跳过看第三步)

        通过http://HA的IP地址:8123进入HA,我们点击最左下方用户名,进入用户资料,在里面将高级模式打开

        然后在左边的配置按钮进去知道“加载项”,点击后我们可以发现有很多的加载项清单,这时我们在Search栏(搜索栏)里输入SSH进行筛选后就出来2个有关SSH的加载项。

        image.png

        点击第一个“Terminal&SSH”后,进行安装,安装结束后,将“守护”、“自动更新”“在侧边栏显示”选项打开,再点击启动。

        image.png


        接着点击配置栏,在Authorized Keys栏拷贝上面你第一步已经复制的生成的公钥后,如图

image.png

     接着点保存,系统提示重启。

        image.png

     (如果你忘记复制,你也可以用记事本打开authorized_keys文件

        image.png

        删除第一行和最后一行,然后在第三行AAAAB3...前面加ssh-rsa后空格,然后在这串字符的最后面再空格后将现在的第一行的comoment的双引号的内容拷贝过去,接着再删除Comment这一行后,将所有内容拷贝到剪切板再添加到AuthorizedKeys这一栏。

        这个时候Authorized Keys的内容应该是 ssh-rsa AAAB3........................... rsa-key-xxxxxx

        接下来我们选项的最右边有三个点的按钮,点击后出现“以YAML编辑”的菜单,进入后最代码的最后面加以下代码

username: root
sftp:true

        后继续保存,提示重启。现在的配置代码如下

        image.png

    接着我们下面的设置,将网络中的“显示已禁用的端口”打开,在编辑栏里输入访问端口(一般我们都是用22),如图

        image.png

        再保存重启后,SSH服务端的设置就完事了。

        这时候,我们打开putty,输入HostName为HA的IP,端口录入上面设置的端口,这里是22,如图

        image.png

        点击左边栏的Connection中的Data,在Auto-login username的编辑栏里输入“root”,如图

        image.png

        点击左边栏的Connection中的SSH下的Auth下的Credentials,然后在Private Key File那里,点击选择你上面保存的ppk文件,如图

        image.png

        再回到Session的界面,输入Session的名字并保存,这样下次你打开puTTY就可以直接访问不需要另行设置了。

        最后,点击Open(打开),再出现的命令行里输入在第一步设置的KeyPassphras密码就可以出现HA的ssh界面了,如图:

        image.png

         在这里,我们通过22端口访问的HA其实是个Docker容器。主要因为hassos的运行模式就是一个主系统,然后插件都是以单独docker容器的形式运行的。



        三 、通过SSH访问主系统。(一般情况下,我们不用直接访问ha的宿主系统,这个可以用虚拟机的VNC界面直接访问更方便快捷)

        找到网络中的共享文件夹,可以在windows里面,也可以在linux里面,因为我是用的qnap的NAS,所以我直接用qnap的自带的共享文件夹。如果你qnap没有设置samba共享,可以在”控制台“的”网络和文件服务“的”Win/Mac/NFS/WebDAV“开启。

        image.png

        然后到”控制台“的”权限“的”共享文件夹“里选择你想做个共享的文件夹,这里我选择”VMStations“,记住该文件夹的名称(务必注意大小写

        image.png

       接着,利用Qnap的FileStations将第一步生成的authorized_keys文件拷贝到VMStations共享文件夹。

       然后,我们从浏览器地址输入http://HA的IP地址:8123进入HA。从”配置“的”系统“进去,找到”存储“再进入。

   

        image.png

        这个时候我们可以找到”添加网络存储”,点击进入,根据你的要求填写,如图:

        image.png

        名称:指的是网络共享的名称,也就是后面会在ha系统里显示的文件夹名称,自定义,后期注意大小写

        使用情况:选择”分享“(其实这里随便选哪个都可以)

        服务器:这里选择qnap的IP地址,也就是共享文件夹的电脑地址

        协议:选择samba

        远程共享:这里输入qnap里的共享文件夹的名字(注意大小写要和文件夹的名字一模一样

        用户名和密码:这里输入qnap的用户名和密码,如果你是其他的共享文件夹,比如windows的共享文件夹,你可以输入你设置的共享文件夹权限的用户名和密码

        image.png

        点击保存,如果出现上面的网络存储的列表,表示已经添加成功。

        这个时候,在虚拟机里通过VNC登录系统,在ha>命令行里输入login登录主系统

        image.png

        进入刚刚绑定的共享文件夹,在主系统的命令行里输入:

cd /mnt/data/supervisior/mount
ls -al

        这时候你可以发现,共享文件已经mount在系统里了

        image.png    

        接着将共享文件夹里的公钥文件拷贝到/root/.ssh/文件夹里

cp authorized_keys /root/.ssh/authorized_keys

        接着我们进入/root/.ssh目录查看下是否拷贝成功。

        image.png

        最后我们重新启动ha系统,即在命令行里直接输入reboot即可。

        这个时候我们可以同步骤2里面一样,用putty访问ha主系统里,注意端口号是22222(5个2),其他设置都一样。

        如图:

        image.png

        这个时候我们可以发现,通过ssh访问的ha主系统,无论在CLI环境还是主系统环境,都是#打头的,而不是CLI环境是用ha>打头。

        然后用WinSCP访问22端口也是一样都是可以的。访问22222端口有点问题,正在研究中。

        image.png