1.2.2 远程开发SSH_环境搭建

概念

SSH(Secure Shell)是一种通用的、功能强大的、基于软件的网络安全解决方案。计算机每次向网络发送数据时,SSH都会自动对其进行加密。数据到达目的地时,SSH自动对加密数据进行解密。整个过程都是透明的,使用OpenSSH工具将会增进你的系统安全性。SSH安装容易、使用简单。

实现

SSH实现架构上分为客户端和服务器端两大部分,客户端是数据的发送方,服务端是数据的接收方,当前场景下,我们需要从本地主机发送数据到远程主机,那么本地主机需要安装并启动SSH客户端,而远程主机则需要安装并启动SSH服务端,整个实现具体流程如下:

  1. 本地主机安装SSH客户端,远程主机安装SSH服务端;
  2. 远程主机启动SSH服务;
  3. 本地主机登陆远程主机;
  4. 实现数据传输。
1.安装SSH客户端与服务端

默认情况下,Ubuntu系统已经安装了SSH客户端,因此只需要在远程主机安装SSH服务端即可,安装命令如下:

 sudo apt install openssh-server

如果SSH客户端需要自行安装,那么调用如下命令:

sudo apt install openssh-client
2.远程主机启动SSH服务

远程主机启动 ssh 服务命令如下:

sudo /etc/init.d/ssh start

启动后可使用如下命令查看服务是否正常运行:

ps -e | grep ssh

如果启动成功,会包含 sshd 程序。

以后需要频繁的使用ssh远程登录,为了简化实现,可以将远程主机的ssh服务设置为开机自启动,命令如下:

sudo systemctl enable ssh
3.本地远程登录

登录远程主机可以调用如下命令:

ssh 账号@ip地址

然后根据提示,录入登陆密码,即可成功登录。

如果退出,可以调用exit命令:

exit
4.实现数据传输

通过SSH在本地主机只需调用相关指令,便可方便的实现与远程主机的数据上传或下载,指令格式如下所示:

上传文件指令格式如下:

scp 本地文件路径 账号@ip:路径

上传文件夹指令格式如下:

scp -r 本地文件夹路径 账号@ip:路径

下载文件指令格式如下:

scp 账号@ip:路径 本地文件夹路径

下载文件夹指令格式如下:

scp -r 账号@ip:路径 本地文件夹路径

优化

每次远程登录时,都需要输入密码,使用不方便,可以借助密钥简化登录过程,实现免密登录,提高操作效率。实现思想是:生成一对公钥私钥,私钥存储在本地,公钥上传至服务器,每次登录时,本地直接上传私钥到服务器,服务器有匹配的公钥就认为是合法用户,直接创建SSH连接即可。具体实现步骤只有两步:

  1. 本地生成密钥对;
  2. 将公钥上传至远程主机。
1.生成密钥对

本地客户端生成公私钥:(一路回车默认即可)

ssh-keygen

上面这个命令会在用户目录.ssh文件夹下创建公私钥:

  1. id_rsa (私钥);
  2. id_rsa.pub (公钥)。
2.公钥上传

上传指令如下:

ssh-copy-id -i ~/.ssh/id_rsa.pub 账号@ip

上面这条指令是将本地公钥上传到远程主机的ssh目录下,该目录下有文件authorized_keys保存了公钥内容。

以后再远程登录就无需录入密码了。

results matching ""

    No results matching ""