ssh
: 远程安全连接 22 互联网服务器 可以默认root用户远程登录
远程连接服务原理
(1).客户端 – 服务端 请求建立远程连接
(2).服务端 – 客户端 确认连接信息
(3).客户端 – 服务端 确认连接
(4).服务端 – 客户端 发送公钥信息 确认密码信息
(5)客户端 – 服务端 接受公钥并保存(~/.ssh/known_hosts)并且输入密码信息
(6).服务端 – 客户端 确认密码输入正确
后续数据传输过程:客户端公钥加密 – 服务端私钥解密
私钥和公钥:对传输的数据进行加密处理
具体的原理不是很清楚,但是这里以远程连接一个AI服务器过程为例:
传统的远程登录过程为:
(1) 编辑好代码,使用基于SSH的SCP将文件上传到服务器;
(2) 使用SSH远程终端,在服务器上编译出可执行文件;
(3) 编译完成后使用基于SSH的SCP将文件传回到本地;
这样的话无疑增加了远程操作的困难与麻烦。所以我们这里使用一款轻量级的软件 vscode,他里面的插件可以帮助我们轻松实现远程登录与代码的实时调试(pycharm也有类似的功能,但是由于占用内存太大,没有尝试)
这里的实验环境为ubuntu18.04环境。
1、首先安装vscode最新版本,然后在插件里安装Remote - SSH这个插件,他随后会自动安装另外两个需要的插件。(网上有许多教程说必须要安装Visual Studio Code Insiders版本,这是vscode的内测版本,但是请记得这是19年,而现在是2020年,这些当年的内测插件造就在稳定版中使用)
!!!
特别注意:SSH扩展只能连接64位的Linux操作系统。
!!!
在远程Linux主机上安装ssh服务器:
sudo apt-get install openssh-server(既然是自己连接别人的服务器,这一步似乎是不必要,这是要把自己的电脑配置成服务器必须的),这样配置已经完成,很适合我这样的小白!!
2、当你租好服务器或者是gpu之后,主机会以邮件的形式给你发送他的端口号、用户名、ip
比如我的是端口号:56519(一般是5位)
root@111.44.254.167 其中root是username, @后面的为ip地址,也就是主机的地址。(可以使用xshell进行远程连接,但我用的是vscode)
3、在vscode中在配置文件中配置上面的三个信息以便进行远程连接。
(1)打开命令面板,输入ssh,选择设置
(2)安装插件之后vscode界面会有变化,
点击左下角的ssh图标:
在命令提示板的最上面会出现:configer ssh host,点击之后出现
这张图是来源于网络,自己的没保存,在ununtu上出现的第一个应该为根目录下的一个隐藏文件 ./.ssh/config ,这是一个用户配置文件,第二个是在/etc/ssh中的一个配置文件,是比较复杂的全局配置,由于我们只需要配置那三个简单信息,所以选第一个就可。
打开之后进行三个信息的配置:
Host (这是自己随便起一个名字,比如我叫他li_ta)
User (这是用户名username,对应于上面的 “root”)
HostName (ip地址,也就是@后面的地址)
Port (这个是对应的五位端口号)
配置好之后保存,如果以后再要更换信息按照相同方法打开修改。
(3)配置好之后连接:
点击最左面新增加的图标,那里有刚配置好的名为:“li_ta”的图标。点击“+”号就可以打开一个新界面。
类似于这样输入登录密码就可以成功的进行远程连接。
windows可以参考这篇博客:
参考
ssh远程传输文件的方法
在配置好并且连接远程服务器后需要面临文件传输的问题,毕竟你打开的都是一些命令行。
方法一:Linux终端利用BaiduPCS-Go 直接下载百度云资源,这是一个直接利用百度云的命令行下载工具,但是百度网盘的速度大家也都知道,试着下了一个30MB文件,最后1kb被限速为0了,相关命令百度自己搜索。
方法二:使用官方ssh的命令行来上传文件。
(1)拷贝远程到本地:
scp -P 56519 -r root@111.44.254.167:(远程服务器文件路径) (本地文件路径)
56519为端口号,root@111.44.254.167为已经提供的ip用户名,注意后面的冒号,后面的两个路径自己安排。
(2)本地拷贝到远程
scp -P 56519 -r (本地文件路径)root@111.44.254.167:(远程服务器文件路径)
方法三:Filezilla-使用ssh连接到服务器-上传下载文件(推荐)
参考链接
最后两种的速度比第一种快多了。