04_SSH

2020-08-15  本文已影响0人  伶俐ll

关于SSH、OpenSSH、SSL、OpenSSL

很多人会将SSH、OpenSSH、SSL、OpenSSL搞混

安装OpenSSH

SSH的版本

使用OpenSSH登录

一、远程登录

二、root、mobile

iOS下有2个常用账户:root、mobile

三、SSH的通信过程

SSH的通信过程可以分为3大主要阶段:

01、建立安全连接

在建立安全连接过程中,服务器会提供自己的身份证明

  • 服务器端保存着两个文件,公钥文件/etc/ssh/ssh_host_rsa_key.pub和私钥文件/etc/ssh/ssh_host_rsa_key
  • 服务器发送公钥等信息给客户端
  • 客户端根据公钥信息对服务器进行身份认证,确认要不要登录这台服务器
  • 如果客户端对服务器的身份认证没有问题,客户端会拿到公钥,存储在~/.ssh/known_hosts路径下
  • 如果客户端曾经登录过这台服务器,客户端已经保存了服务器的公钥信息,那么当客户端再次登录服务器时,发现公钥信息已经存在,客户端就不再需要进行安全认证
  • 在建立安全连接过程中,可能会遇到以下错误信息:提醒服务器的身份信息发生了变更,可能遭到了中间人攻击
    - 如果确定要连接此服务器,删除掉之前服务器的公钥信息就行 ssh-keygen -R 服务器IP地址
    - 或者直接打开known_hosts文件删除服务器的公钥信息就行 vim ~/.ssh/known_hosts
02、客户端认证

SSH-2提供了2种常用的客户端认证方式

SSH-2默认会优先尝试“密钥认证”,如果认证失败,才会尝试“密码认证”

基于密钥的客户端认证步骤:
zhanglingli@bogon ~ % cd ~/.ssh 
zhanglingli@bogon .ssh % ls
known_hosts known_hosts.old my_rsa      my_rsa.pub
zhanglingli@bogon .ssh % ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/zhanglingli/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/zhanglingli/.ssh/id_rsa.
Your public key has been saved in /Users/zhanglingli/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XSb/fX3huWsUS4JJ6ufwRHnJp9ElNa/4YDR78BNjIys zhanglingli@bogon
The key's randomart image is:
+---[RSA 3072]----+
|               o.|
|           .  . +|
|          + % B.o|
|         o @ / X |
|        S E O @.o|
|         o = *.=+|
|          *   +o=|
|           o   .+|
|              .o.|
+----[SHA256]-----+
zhanglingli@bogon .ssh % ls
id_rsa      known_hosts my_rsa
id_rsa.pub  known_hosts.old my_rsa.pub
zhanglingli@bogon .ssh % 

注意:如果配置了免密码登录后,还是需要输入密码,需要在服务器端设置文件权限

chmod 755 ~
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
03、数据传输

四、端口

五、通过USB进行SSH登录

usbmuxd的使用

1、下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.pyhttps://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz
2、将iPhone的22端口(SSH端口)映射到Mac本地的10010端口(不一定非要10010端口,只要不是保留端口就行)
python tcprelay.py -t 22:10010,加上-t参数是为了能够同时支持多个SSH连接

zhanglingli@bogon usbmuxd % ls
tcprelay.py usbmux.py
zhanglingli@bogon usbmuxd % python tcprelay.py -t 22:10010
Forwarding local port 10010 to remote port 22

3、端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了

远程拷贝文件也可以直接跟Mac本地的10010端口通信
scp -P 10010 ~/Desktop/1.txt root@localhost:~/test,将Mac上的/Desktop/1.txt文件,拷贝到iPhone上的/test路径,注意:scp的端口号参数是大写的-P

六、sh脚本文件

当前shell环境会启动一个子进程来执行脚本文件,执行后返回到父进程的shell环境
执行cd时,在子进程中会进入到cd的目录,但是在父进程中环境并没有改变,也就是说目录没有改变

在当前的shell环境下执行脚本文件
执行cd后会跳转到cd的目录
source可以用一个点”.”来替代,比如”. test.sh”

七、iOS终端的中文乱码问题

默认情况下,iOS终端不支持中文输入和显示

解决方案:新建一个~/.inputrc文件,文件内容是

如果是想在终端编辑文件内容,可以通过Cydia安装一个vim(软件源http://apt.saurik.com

上一篇下一篇

猜你喜欢

热点阅读