文编|JavaBuild

大家好呀,我是JavaBuild,以后可以喊我build哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,厚积薄发!

在程序员的日常工作中,通过FTP/SFTP等工具在服务器之间进行文件的交互是一个基操技能,无论是编码开发过程中的跨系统传输文件,还是生产部署过程中的数据索取,熟练掌握这一技能,可以大大的提高开发效率。当然,现在也有很多终端模拟器提供了可视化的文件传输功能,比如XFTP、WINSCP、MobaXterm、Finalshell等等。

仅需几步就可快速实现SFTP的免密传输_上传文件


但大部分的银行、国企等公司都不会在内网生产环境提供这些可视化传输工具,甚至于还需要进行免密传输,今天我们就以SFTP传输为例,来聊一聊如果快速实现免密传输。

Linux环境下通过用户名密码连接SFTP传输

1、连接

sftp 用户名@ip ,回车输入对应ip密码,连接指定用户,如图,鸟哥以本地终端连接远程服务器为例展示,两个linux服务器连接原理相同。

仅需几步就可快速实现SFTP的免密传输_用户名_02


2、传输

sftp中常用命令如下,更多详细命令兄弟们可自己私下学习哈:

pwd:远程服务器上的当前路径(lpwd本地的当前路径)

cd:切换远程服务器目录(lcd切换本地目录)

ls:查看远程服务器目录下内容(lls查看本地目录下内容)

get:获取文件,put上传文件

quit / bye / exit 退出sftp

有了上面的基础命令后,我们就来通过SFTP上传和下载文件吧

1)上传文件至远程服务器

仅需几步就可快速实现SFTP的免密传输_远程服务器_03


上传文件至远程服务器

2)从远程服务器获取文件

仅需几步就可快速实现SFTP的免密传输_用户名_04


从远程服务器获取文件

Linux环境下,通过免密方式连接SFTP传输

先进行免密配置,我依旧是采用本地终端与远程服务器进行免密配置连接的,两台linux机器之间原理一致,太穷了,自己买不起2台机器,哈哈

(1)本机(传输端)通过命令生成rsa公私钥

ssh-keygen -t rsa #ssh协议版本较高时的命令

ssh-keygen -m PEM -t rsa #ssh协议低版本时使用,我本地使用的是这个命令

仅需几步就可快速实现SFTP的免密传输_上传文件_05


仅需几步就可快速实现SFTP的免密传输_用户名_06


(2)命令执行后,一路回车在本地用户路径下的.ssh文件中会生成id_rsa和id_rsa.pub的私钥与公钥文件

仅需几步就可快速实现SFTP的免密传输_上传文件_07


(3)拷贝id_rsa.pub中内容,然后进入对方服务器(接收端),命令:cd /用户路径/.ssh

将拷贝的内容填入authorized_keys。完成配置

仅需几步就可快速实现SFTP的免密传输_远程服务器_08


(4)免密连接,直接sftp 用户@ip 回车(或输入yes)即可免密登录,后面的操作就如同上文所述了。

仅需几步就可快速实现SFTP的免密传输_远程服务器_09