SSH以及ROS远程登录设置保姆级教程
本文用来实现在同一局域网内的两台计算机之间的相互通信,实现一台计算机登录到另一台计算机,本文基于SSH来实现。
1.SSH简介
Secure Shell(SSH)是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用。
2.设置设备IP
本文通过路由器实现两个设备之前的网络连接,因此通过路由器可以将设备的IP进行固定,除此之外,可以通过网络设置选项将IP进行固定,防止IP发生变动。
在路由器设置中,将设备IP设置固定IP,通过DHCP来实现,此时,设备应该连接到路由器:
通过"+"号来添加设备,并设定固定的IP。
2.安装SSH
SSH分为客户端openssh-client和服务器openssh-server,安装命令为:
sudo apt-get install openssh-client
sudo apt-get install openssh-server
如果只是想要登录远程主机, 只安装client即可。
3.启动服务端的SSH服务
首先,在服务器端启动SSH:
service ssh start
在终端执行:
ps -e | grep ssh
如果输出有sshd的进程,则ssh服务启动成功,ssh服务默认开机自启。
ssh常用命令有:
service ssh start #启动ssh服务
service ssh stop #停止ssh服务
service ssh restart #重启ssh服务
4.客户端登录
4.1口令登录
登录口令的格式为:
ssh 服务端用户名@服务器地址
例如:
ssh remote_user@192.168.0.1
如果需要调用图形界面程序,可以使用-X选项:
ssh -X remote_user@192.168.0.1
第一次登录远程主机,系统会给出提示,打上yes就可以了,然后输入密码,成功进入服务端的主机。
通过exit或ctrl+d退出远程登录。
4.2公钥登录
在客户端,使用ssh-keygen命令生成密钥对:
ssh-keygen -t rsa #t表示类型选项,这里采用rsa加密算法
一步一步按回车即可。
结束之后,会在/home/user目录下生成.ssh文件夹,其中包含私钥文件id_rsa和公钥文件id_rsa.pub。
将公钥复制到远程主机中:
ssh-copy-id remote_user@192.168.0.1
ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中。
经过上述操作,以后登录远程主机就不在需要密码了。
5.ROS主从机设置
确保计算机设备都在同一网段下,同时,主从机都需要修改~/.bashrc文件,添加以下内容:
主机中添加:
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=主机IP
从机中添加:
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=从机IP
修改/etc/hosts文件:
主机中添加:
从机IP 从机的hostname
从机中添加:
主机IP 主机hostname
至此,配置完成。
如果给您带来帮助,希望能给点个关注,以后还会陆续更新有关机器人的内容,点个关注不迷路~欢迎大家一起交流学习。
都看到这了,点个推荐再走吧~
未经允许,禁止转载。