ssh免密登录——数据分析师不懂黑科技

前沿

数据码工接到分析任务,数据源一般在云端服务器或公司机房服务器。不管云端,还是公司机房,这些都是远程服务器(生产环境)。要分析建模,就要从本地(开发环境)连接远程服务器操作数据库。
对于经济、金融、数学或统计学专业出身的分析人员,咋搞?一点通信知识不懂。这玩意实操性很强,没人教不敢乱动,生产系统也不让我烂搞,搞不好就是灾难。一般只要不烂删东西、不烂改服务器配置、不烂停服务或关机重启,尽可放心也没啥大问题。
其实,我就想登上去把数据库数据或模型算法日志抽取到本地而已,不想惹麻烦。

废话了这么多,有什么操作远程服务器的黑科技吗,有!
就是ssh!

ssh是什么?

百度百科这么定义的
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

反正就是很安全啦,可以实现无密码登录远程主机。

1.安装ssh

我这里是ubuntu18系统,以ubuntu为例。

sudo apt install openssh-server # 安装ssh服务端
sudo apt install openssh-client # 安装ssh客户端

2.启动停止ssh服务

sudo service ssh start  # 启动ssh
sudo service ssh stop   # 关闭ssh
sudo service ssh restart  # 重启ssh

3.配置本地无密码登录、

要实现无密码登录,本地A计算机和远程B服务器要建立一种亲密关系,其他人C都不知道这层关系。建立这种关系就是要靠公钥和私钥对。公私钥对由A创建,私钥A拿着,公钥给远程服务器B,这种关系就建立了,等到A发出登录B请求时,B就是知道A是熟人可以信任。说的比较通俗,逻辑很简单。

3.1生成公钥私钥对

cd ~/.ssh
ssh-keygen  -t  rsa  # 生成公/私钥对,一路next
ls ~/.ssh  

在~/.ssh路径下多了id_rsa和id_rsa.pub两个文件。id_rsa为私钥自己保留,id_rsa.pub是公钥,可以公开给他人。

3.2创建本地授权文件,实现本地免密登录

在~/.ssh路径下,使用cat命令将公钥文件(id_rsa.pub),追加(>>)到授权文件中authorized_keys,如果authorized_keys不存在则会新建。

cat id_rsa.pub >> authorized_keys    # 注意>为覆盖操作
ssh localhost # 免密登录本地主机
ssh logout # 退出登录

3.3创建远程授权文件,实现远程服务器免密登录

3.3.1 先确认远程服务器已经安装ssh服务端并开启服务

3.3.2 把公钥文件考到远程服务器~/ssh路径下,将公钥文件添加到服务器授权文件

cat id_rsa.pub >> authorized_keys    # 注意>为覆盖操作

3.3.3 本地免密登录远程服务器

ssh root@远程服务器IP

完美!可以免密登录远程服务器了。

彩蛋

Linux系统10分钟入门一文,我们已经介绍了如何复制文件和目录了。但是,我想在本地和服务器之间传输文件,怎么搞。ssh这方面也很在行。直接上代码。

  • 本地文件上传到服务器
scp ~/test.txt  root@远程服务器IP:~/test.txt 
  • 服务器文件下载到本地
scp  root@远程服务器IP:~/test.txt  ~/test.txt 
  • 本地目录上传到服务器
scp -r ~/test/ root@远程服务器IP:~/test/
  • 服务器目录下载到本地
scp -r  root@远程服务器IP:~/test/  ~/test/
  • 也可以本地文件复制
scp ~/test.txt  localhost: ~/test.txt 
  • 也可以本地目录复制
scp -r ~/test/  localhost: ~/test/

好啦,又掌握了一项技能。

如果您觉得文章有用,可以打赏下吐血过度的一血老黄忠,鼓励写出更优秀的原创文章。

你可能感兴趣的:(ssh免密登录——数据分析师不懂黑科技)