SSH以及ROS遠端登入設定保姆級教程

Love&Robot發表於2021-08-24

本文用來實現在同一區域網內的兩臺計算機之間的相互通訊,實現一臺計算機登入到另一臺計算機,本文基於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來實現,此時,裝置應該連線到路由器:

SSH以及ROS遠端登入設定保姆級教程

通過"+"號來新增裝置,並設定固定的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就可以了,然後輸入密碼,成功進入服務端的主機。

通過exitctrl+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_HOSTNAME=主機的hostname
export ROS_MASTER_URI=http://主機IP:11311
export ROS_IP=主機IP

從機中新增:

export ROS_HOSTNAME=從機的hostname
export ROS_MASTER_URI=http://主機IP:11311
export ROS_IP=主機IP

修改/etc/hosts檔案:

主機中新增:

從機IP 從機的hostname

從機中新增:

主機IP 主機hostname

至此,配置完成。

如果給您帶來幫助,希望能給點個關注,以後還會陸續更新有關機器人的內容,點個關注不迷路~歡迎大家一起交流學習。
都看到這了,點個推薦再走吧~
未經允許,禁止轉載。

相關文章