SSH
- secure shell 安全外殼協(xié)議,是一種可以為遠(yuǎn)程登錄提供安全保障的協(xié)議.
- 可以對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,中間人攻擊,sniffer等無(wú)法造成篡改.防止DNS欺騙和IP欺騙.
OpenSSH
- SSH協(xié)議的免費(fèi)開(kāi)源實(shí)現(xiàn),可以通過(guò)OpenSSH的方式遠(yuǎn)程登iPhone.
SSH是通過(guò)TCP協(xié)議協(xié)議通信,要保證mac和iPhone在同一個(gè)局域網(wǎng)下
在mac的終端輸入 ssh 賬戶(hù)名@主機(jī)地址
ssh root@192.168.50.222
The authenticity of host '192.168.50.222 (192.168.50.222)' can't be established.
RSA key fingerprint is SHA256:mK4IZVBBKdt/D2zd6250WBS58RNF7M8IWeUWTl+3VtY.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.50.222' (RSA) to the list of known hosts.
root@192.168.50.222's password:
密碼默認(rèn) alpine
iOS下有2個(gè)常用賬戶(hù):
- root:最高權(quán)限 $Home
/var/root
- mobile:普通權(quán)限,不能操作系統(tǒng)文件 $Home
/var/mobile
退出帳號(hào) 終端輸入 exit
更改密碼 passwd
在cydia上安裝OpenSSH的時(shí)候會(huì)先安裝OpenSSL,也就是說(shuō)OpenSSH是依賴(lài)于OpenSSL的 .
- SSL 也是一種傳輸加密協(xié)議.
- OpenSSL 則是其開(kāi)源實(shí)現(xiàn).
SSH 有2種版本
- SSH1
- SSH2
主機(jī)與服務(wù)端需要保持一致才能相互通信.可以通過(guò)查看Protocol
字段來(lái)得知是第幾種版本.
$ cd /etc/ssh
$ open -a xcode ssh_config
SSH通信過(guò)程
- 建立安全連接
- 客戶(hù)端認(rèn)證
- 數(shù)據(jù)傳輸
建立安全連接
在建立安全連接的過(guò)程中,服務(wù)器會(huì)提供自己的身份證明.
如果客戶(hù)端并無(wú)服務(wù)器端的公鑰信息弦追,就會(huì)詢(xún)問(wèn)是否連接此服務(wù)器.
在建立安全連接的過(guò)程中,如果服務(wù)器的身份信息發(fā)生變更.(eg.不同主機(jī)同一個(gè)IP),在確定要連接的情況下刪掉之前保存的公鑰信息即可.
ssh-keygen -R 服務(wù)器IP地址
vim ~/.ssh/known_hosts
客戶(hù)端認(rèn)證
SSH-2提供2種客戶(hù)端認(rèn)證方式
- 基于密碼的客戶(hù)端認(rèn)證
- 基于密鑰的客戶(hù)端認(rèn)證 (優(yōu)先且更安全)
基于密鑰的認(rèn)證:
ssh-keygen
一路敲回車(chē)鍵(Enter)即可
OpenSSH默認(rèn)生成的是RSA密鑰几莽,可以通過(guò)-t參數(shù)指定密鑰類(lèi)型
生成的公鑰:~/.ssh/id_rsa.pub
生成的私鑰:~/.ssh/id_rsa
復(fù)制到服務(wù)器中:
$ ssh-copy-id -i id_rsa.pub root@192.168.50.222
or手動(dòng)復(fù)制scp
命令.
復(fù)制客戶(hù)端的公鑰到服務(wù)器某路徑
scp ~/.ssh/id_rsa.pub root@服務(wù)器主機(jī)地址:~
- scp是secure copy的縮寫(xiě),是基于SSH登錄進(jìn)行安全的遠(yuǎn)程文件拷貝命令,把一個(gè)文件copy到遠(yuǎn)程另外一臺(tái)主機(jī)上
上面的命令行將客戶(hù)端的~/.ssh/id_rsa.pub
拷貝到了服務(wù)器的~地址
SSH登錄服務(wù)器 - ssh root@服務(wù)器主機(jī)地址
- 需要輸入root用戶(hù)的登錄密碼
在服務(wù)器創(chuàng)建.ssh文件夾
mkdir .ssh
追加公鑰內(nèi)容到授權(quán)文件尾部
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
刪除公鑰
rm ~/id_rsa.pub
備注: iPhone 默認(rèn)22端口進(jìn)行ssh通信.
USB進(jìn)行SSH登錄
下載usbmuxd工具包(下載v1.0.8版本尊惰,主要用到里面的一個(gè)python腳本:tcprelay.py)
usbmuxd 下載地址
將iPhone的22端口(SSH端口)映射到Mac本地的10010端口
cd ~/Documents/usbmuxd-1.0.8/python-client
python tcprelay.py -t 22:10010
加上-t參數(shù)是為了能夠同時(shí)支持多個(gè)SSH連接
注意:要想保持端口映射狀態(tài)鳍征,不能終止此命令行(如果要執(zhí)行其他終端命令行掌猛,請(qǐng)新開(kāi)一個(gè)終端界面)不一定非要10010端口熔脂,只要不是保留端口就行.
$ ssh root@localhost -p 10010
拷貝
scp -P 10010 ~/Desktop/1.txt root@localhost:~/test
即可連接.
Shell腳本
為了避免每次開(kāi)發(fā)都要輸入命令,將其封裝成2個(gè)腳本
vim usb.sh回車(chē)
按i 輸入
python ~/Downloads/usbmuxd-1.0.8/python-client/tcprelay.py -t 22:10010
按ESC 然后:wq
保存退出.
vim usblogin.sh回車(chē)
按i 輸入
ssh root@localhost -p 10010
按ESC 然后:wq
保存退出.