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 [email protected]
如果需要調用圖形介面程式,可以使用-X選項:
ssh -X [email protected]
第一次登錄遠程主機,系統會給出提示,打上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 [email protected]
ssh-copy-id會將公鑰寫到遠程主機的 ~/ .ssh/authorized_key 文件中。
經過上述操作,以後登錄遠程主機就不在需要密碼了。
5.ROS主從機設置
確保電腦設備都在同一網段下,同時,主從機都需要修改~/.bashrc文件,添加以下內容:
主機中添加:
export ROS_HOSTNAME=主機的hostname
export ROS_MASTER_URI=//主機IP:11311
export ROS_IP=主機IP
從機中添加:
export ROS_HOSTNAME=從機的hostname
export ROS_MASTER_URI=//主機IP:11311
export ROS_IP=主機IP
修改/etc/hosts文件:
主機中添加:
從機IP 從機的hostname
從機中添加:
主機IP 主機hostname
至此,配置完成。
如果給您帶來幫助,希望能給點個關注,以後還會陸續更新有關機器人的內容,點個關注不迷路~歡迎大家一起交流學習。
都看到這了,點個推薦再走吧~
未經允許,禁止轉載。

