SSHDroid及sshpass简介

一、SSHDroid简介

SSH为Secure Shell的缩写,是建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH客户端适用于多种平台,几乎所有UNIX平台都可运行SSH。

从客户端来看,SSH提供两种级别的安全验证:

1. 基于口令的安全验证:只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到”中间人”这种方式的攻击。

2. 基于密钥的安全验证:需要依靠密钥,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密质询”(challenge)并把它发送给客户端软件。客户端软件收到质询之后就可以用你的私人密匙解密再把它发送给服务器。

SSHDroid是个免费的Android版的SSH服务器,SSH Server for Android,该应用可以让你通过PC或命令连接设备,实现无线传输和管理文件。 它要求手机和PC都连接在同一路由器(或WiFi)上。

SSHDroid最新版本为2.1.2,可以从https://www.apk20.com/apk/77332/v/73461/ 下载安装。安装后的界面如下:

SSHDroid及sshpass简介_第1张图片

二、sshpass简介

在Ubuntu中,可以通过源码安装sshpass,下载地址: https://pkgs.org/download/sshpas;也可以直接通过apt-get安装:

sudo apt-get install sshpass

ssh登录不能在命令行中指定密码,需要用户交互输入密码,sshpass解决了这个问题,它允许你用-p参数指定明文密码,然后直接登录远程服务器或手机。

sshpass支持密码从命令行、文件、环境变量中读取,所以,通过sshpass可以实现以非交互的形式为ssh提供密码。

假如远程服务器的密码为admin,端口号为port=2222,用户名为root,ip为ip=10.1.10.20:

(1). 将本机a.txt文件传到服务器,则可执行:

sshpass -p admin scp -P ${port} -r a.txt root@${ip}:~

(2). 在远程服务器上创建一个名为code的目录,则可执行:

sshpass -p admin ssh -p ${port} root@${ip} "mkdir -p code"

(3). 将远程服务器上目录名为data目录内容拷贝到本地/home/spring目录下,则可执行:

sshpass -p admin scp -P ${port} -r root@${ip}:data /home/spring/

以上内容参考:

1. https://baike.baidu.com/item/ssh/10407?fr=aladdin

2. http://www.bkjia.com/Androidjc/425513.html

3. https://www.jianshu.com/p/643aac9a9f4c

你可能感兴趣的:(Linux,Android)