簡介
- SSH
SSH是一種網路協議,用於計算機之間的加密登入。(具體過程很簡單,點這裡?)- 中間人攻擊(Man-in-the-MiddleAttack,簡稱“MITM攻擊”),通過攔截正常的網路通訊資料,並進行資料篡改和嗅探,而通訊的雙方卻毫不知情。
- 預防中間人攻擊的最有效方法就是驗證公鑰是不是來自伺服器,如果是公開的SSH伺服器,一般會將公鑰的雜湊值公佈在官網。
- OpenSSH
OpenSSH是提供SSH登入服務的軟體。
使用OpenSSH連線(登入)手機
- $ ssh 使用者名稱@使用者伺服器地址
- 最高許可權使用者:$ HOME:/var/root
$ ssh root@使用者伺服器地址 複製程式碼
- mobile許可權使用者:$ HOME:/var/mobile
當遠端主機的公鑰被接受以後,它會被儲存在$~/.ssh/known_hosts檔案中。當檔案中儲存的IP埠所對應的公鑰,和服務端的公鑰不匹配時,會出現中間人攻擊警告,需要刪除對飲的IP地址和埠記錄。$ ssh mobile@使用者伺服器地址 複製程式碼
刪除伺服器獲取的公鑰
- $ ssh-keygen -R 伺服器IP地址
修改OpenSSH登入密碼
- 登入狀態下
$ passwd
複製程式碼
SSH公鑰登入
除了可以密碼登入,也可以免密登入
公鑰登入的原理:
- 客戶端將公鑰發給服務端
- 服務端生成隨機字串給客戶端
- 客戶端通過私鑰加密隨機字串給服務端
- 服務端通過公鑰解密字串驗證通過
這種方法需要使用者自己提供公鑰,如果沒有公鑰,可以使用ssh-keygen生成,生成步驟如下:
$ ssh-keygen
使用ssh-keygen命令在$~/.ssh目錄下生成一對祕鑰:
id_rsa(私鑰)
id_rsa.pub(公鑰)
$ ssh-copy-id
使用ssh-copy-id命令將生成的公鑰上傳到服務端
複製程式碼
如果出現錯誤,仍需輸入密碼登入,使用以下命令列印debug資訊排查
$ ssh -vvv root@伺服器ip
複製程式碼
注意:要確保裝置中的$~/.ssh檔案和$~/.ssh/authorized_keys 檔案的組許可權和其他使用者許可權中沒有有寫(w)許可權。因為系統認為這是不安全的,會導致授權失敗。可通過如下命令糾正:
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
複製程式碼
通過USB登入
SSH協議的預設埠為22
將本地埠12345對映到服務端的TCP埠22,這樣就可以通過本地的12345埠建立連線了。
- 使用python指令碼
1. 通過tcprelay.py將12345
$ python tcprelay.py -t 22:12345
2. 通過本機IP,12345埠,建立連線
$ ssh root@localhost -p 12345
複製程式碼
如果覺得輸入命令比較麻煩,可以使用shell指令碼
- 使用libimobiledevice
1. 通過如下命令安裝libimobiledevice
$ brew install libimobiledevice
2. 使用libimobiledevice提供的工具iproxy把本地的2222埠對映到裝置的TCP埠22.
$ iproxy 2222 22
3. 通過本機IP,12345埠,建立連線
$ ssh root@localhost -p 2222
複製程式碼
如果覺得命令列比較麻煩,可以將埠轉換命令寫到開機啟動項中。
1. 建立檔案 ~/Library/LaunchAgents/com.usbmux.iproxy.plist
2. 寫入內容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.usbmux.iproxy</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/iproxy</string>
<string>2222</string>
<string>22</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
3. 執行命令
$ launchctl load ~/Library/LaunchAgents/com.usbmux.iproxy.plist
4. 開啟$ HOOM/.ssh/config檔案(沒有就建立),寫入以下內容
Host 5s #自定義的裝置名
Hostname localhost #通過USB的埠對映,寫入localhost
User root #以root使用者登入
Port 2222 #指定埠號為對映埠號2222
5. 輸入ssh 5s
複製程式碼
檔案拷貝
拷貝檔案123.txt
- 通過Wi-Fi連線拷貝 IP地址:192.168.2.4
scp 123.txt root@192.168.2.4:~/
複製程式碼
- 通過USB連線拷貝
注意大小寫。。。
scp -P 12345 123.txt root@localhost:~/
複製程式碼