ssh、sftp 遠程計算機

 

一、遠端支持依據

  1.  ROS最牛逼的地方就是它的通信機制了,不僅僅是進程間通信方便,就連不同設備間通信也很方便,只需添加幾行代碼,你就可以實現多電腦間的 Topic 共享, 遠程控制等功能。下面就讓我們一起來實現吧!
  2. 這裏假設我們有兩個電腦:電腦 A 爲主機端,電腦 B 爲控制端。最終要實現在 A 電腦上運行roscore,並且運行 Turtlesim 程序,然後在 B 電腦上運行鍵盤控制程序,控制 Turtlesim 小烏龜移動。

SSH :是一種加密的網絡協議。使用該協議的數據將被加密,如果在傳輸中間數據泄漏,也可以確保沒有人能讀取出有用信息。要使用 SSH,目標機器應該安裝 SSH 服務端應用程序,因爲 SSH 是基於客戶-服務模式的。 

當你想安全的遠程連接到主機,可中間的網絡(比如因特網)並不安全,通常這種情況下就會使用 SSH。

1.1 SSH  包含3個組件

1> ssh 遠程登錄節點 : ssh 用戶名@IP地址 

  1.  不允許空密碼或錯誤密碼認證登錄
  2. 不允許root用戶登錄
  3.  有兩個版本 ssh,ssh2安全性更高

2> sftp 文件共享連接 , xftp連接就是 sftp實現的    

3> scp  文件拷貝共享  兩節點文件的拷貝傳輸

1.2 scp 命令:

1.2.1. 向目標節點傳文件 :

語法:  scp  路徑/文件名  用戶名@IP地址:目錄 

Eg: scp 路徑/文件名 [email protected]:/tmp

1.2.2.從目標節點拉文件 :

語法:  scp  用戶名@IP地址:路徑/文件名  文件目錄

注意 :在遠程拷貝至目標節點時 ,就等於創建了 一個一模一樣的文件 ,此時原文件的文件屬性已發生了變化(如文件創建的時間.) 如果不期望文件屬性發生變化

scp -p  -r   xxx

-p 文件屬性不發生變化  (建議加上)

-r  : 如果拷貝的是目錄 需要加-r  ,遞歸

1.2.3 免密碼

 在使用scp拷貝文件時需要手動輸入密碼才能拷貝成功到遠程節點,如果實現定時拷貝或者免密碼登錄需要創建祕鑰免密碼認證。 參考:https://www.cnblogs.com/bbdong/p/9760791.html

二、遠程控制 ssh

1、ubuntu環境下兩臺電腦連接到同一局域網內
2、兩臺電腦分別安裝    安裝SSH

  • sudo apt-get install openssh-server

3、被控電腦 輸入ifconfig -a 查看連接   電腦的主機名和IP地址

  1. 如果電腦連接的是有線網,則顯示結果中,etho 部分的 inet addr 後面就是該電腦的 IP 地址;
  2. 如果電腦連接的是無線,則 wlp3s0 部分的 inet addr 後就是 IP 地址。

 eg:地址:10.232.9.79 廣播:10.232.9.1 掩碼:255.255.255.0

  • ifconfig -a

查看 Hostname,在控制檯輸入:

  • hostname

4、控制另一臺計算機(終端命令)

  • ssh robot@110.232.9.79
  • ssh 主機名@IP地址

5、出來選項,選擇yes , 同時輸入被控點的用戶名密碼。

三、遠端打開rviz顯示

對多個機器共用一個ROS master很重要。有了這個就可以在sys2的terminal下訂閱sys1機器發佈的topic了,這樣我們就可以用sys2完成一些圖形顯示的任務

1、被控計算機啓動ROS 

2、控制計算機啓動ROS(也可放入.bashrc)

  1. export ROS_MASTER_URI=http://10.232.9.79:11311
  2. #//export ROS_MASTER_URI=http://被控計算機IP:11311

3、終端添加環境變量之後,便可在兩臺計算機上使用相同ROS

  1. export ROS_IP=10.232.9.80   //本地IP

當此方法不可使用rviz 共享環境時

  1. 在控制端添加(.bashrc
  2. export ROS_MASTER_URI=http://10.232.9.79:11311
  3. export ROS_IP="10.232.9.40"
  4. 在被控制端添加(.bashrc
  5. export ROS_MASTER_URI=http://10.232.9.40:11311
  6. export ROS_IP="10.232.9.40"
  7. 其中:
  8. "10.232.9.40" 被控制端IP
  9. 10.232.9.79  主控制端IP

四、有些電腦需要

在master 電腦上  添加客戶端的IP 和電腦名稱

/etc/hosts      10.232.9.40   hehe-pc

. /hosts文件可以幫助解決哪些問題

4.1 遠程登錄linux主機過慢問題

有時客戶端想遠程登錄一臺linux主機,但每次登錄輸入密碼後都會等很長一段時間纔會進入,這是因爲linux主機在返回信息時需要解析ip,如果在linux主機的hosts文件事先加入客戶端的ip地址,這時再從客戶端遠程登錄linux就會變很快。
注:這裏所說的遠程登錄不僅僅是ssh,還可能是mysql遠程登錄,或是文件共享的查詢等。

4.2 雙機互連

當兩臺主機只是雙機互連時,這時兩臺主機都需要設置自己的ip,同時在對方的hosts文件里加入自己的ip和主機名。

4.3 主機名修改工具hostname

其實主機名的修改也有專用工具,就是hostname
hostname - show or set the system’s host name
顯示主機名:
# hostname
linmu100
此主機的主機名是linmu100,不加參數是用來顯示當前主機的主機名;
臨時設置主機名:
# hostname test100
# hostname 注:顯示主機名
test100
通過hostname 工具來設置主機名只是臨時的,下次重啓系統時,此主機名將不會存在;
顯示主機IP:
# hostname -i

五、直接打開遠端文件夾

1.文件夾操作:

開文件夾,在左下方可以看到:

Conect to Server

點擊後在Server Address中輸入:

  • robot sftp://10.232.9.79/home/robot

2.終端拷貝:

跟ssh 協議的格式一樣,只是前面命令不一樣

將遠端電腦資料拷貝到本地:

  • get xxx.bag   //後面可指定路徑

如果想拷貝文件夾,可加  -r

  • get -r test

將本地文件放到遠端:

  • put  xxx.bag 遠端目錄

關閉:

  • exit

六、查看當前路由器有哪些地址被連接

nmap文件  

安裝:

  • sudo apt-get install nmap

幫助:

  • nmap -h

使用:

  • nmap -v -sn 192.168.1.0/24

七、Ubuntu 小結

1.歷史記錄小結

1.查看歷史記錄

  1. 若想查看最近使用的命令,只需在終端中輸入 history 命令。該命令會把剛剛使用的命令把儲存在用戶的 home 目錄下的 .bash_history 文件中的命令調出來,該文件存儲用戶最近使用過的命令,最多可保留1000個命令的歷史記錄。
  2. 由於歷史命令比較多,可以使用管道把 history 的內容分屏展示出來,比如,可以使用less:
  • $ history | less 

2.複製代碼 

  • 這只是查看,若想重用一個使用過的命令,只需在終端中輸入感嘆號(!)和命令把對應的歷史編號,該編號即 history 命令查出來的命令前面的數目編號。比如,我之前使用cp /etc/fstab ~/Desktop 命令作了一個複製操作,用 history 命令查得該歷史命令編號爲591,那麼,使用 !591 命令就能重用該命令了。
  • 如果只是想重複使用最後一個使用的命令,只要使用兩個感嘆號就能快速執行之。 

$ !! 

  • 另外,如果想在命令歷史中搜索一個命令,同時按下 Ctrl + r 鍵後,輸入你感興趣的命令,命令終端就能爲你自動補齊你所要找的命令。同時,使用鍵盤的上下鍵也能在最近的歷史命令中切換,找到你想重用的命令,按Enter鍵即可。
     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章