前置课程之了解SSH的相关知识:SSH 有关密钥和私钥 的那些事儿_authorized_keys文件作用_songroom的博客-CSDN博客
远程控制有多种方式,如SSH(命令行远程访问)、远程桌面软件(Nomachine)、VScode中的SSH等。
大疆妙算2-G初始情况:之前实验室师兄用过,网络应该设置好了【其中一点是,把ip地址改成了静态ip(不知道有没有影响,静态ip好处就是稳定嘛)】,ssh相应的配置文件应该也改好了。
目的:通过PC上的Ubuntu作为Client远程控制妙算2-G(非root用户,root用户和非root用户在配置中是有区别的)(Server端)
过程(一步一个报错,但最终解决了):
1.最初跟着这个教程做(后续有报错,报错内容见第2点):在 Ubuntu 中配置 SSH 的完整指南-ubuntu ssh配置
注意:此教程中的username@address中username和address均指server端的用户名和网址。
2.跟着上面的教程做完报错:dji@xxx.xxx.x.xxx: Permission denied (publickey).
注意:每次使用指令ssh username@address ,client端下~/.ssh/know_hosts会记录公钥信息,使用ssh-keygen -R xxx.xxx.x.xxx可以进行删除。
3.使用ssh-keygen方法以生成密钥的形式进行SSH连接。启动Hadoop集群遇到Permission denied (publickey,password)问题的解决方法 - 哔哩哔哩
其中,id_rsa表示私钥,id_rsa.pub表示公钥。
4.在第3点中遇到的问题是scp文件传输指令无法使用,在运行scp指令时报错dji@xxx.xxx.x.xxx: Permission denied (publickey).同时,由于具体情况不同,我直接将Client端生成的公钥内容粘贴到妙算2-G的~/.ssh/authorized_keys中,然后提高文件权限。但是,还是报dji@xxx.xxx.x.xxx: Permission denied (publickey)
5.参考链接:【ssh使用公钥验证登陆和ssh方向shell-哔哩哔哩】 https://b23.tv/PrCXfqR
使用ssh-copy-id命令进行公钥的复制还是报同样的错误,但此时我Client端的~/.ssh下多出了一个config文件(这个文件不知道是什么时候生成的,因为我成功之后才去翻看的,想找一些线索,无果),查看Server端的~/.ssh/authorized_keys并没有Client端生成的公钥(用公钥配对的方法必须有公钥才行,同时保证文件的权限),然后我直接复制公钥加在Server端的~/.ssh/authorized_keys文件内容的后面,然后,成功了。。。
6.注:这个过程中用过Ping、telnet都能进行链接,就是SSH不行,不知道为啥。
7.现在看来,对SSH全面了解之后,这篇文章似乎能够解释我的问题:解决Permission denied (publickey)._Locutus的博客-CSDN博客