jxnxsdengyu
作者jxnxsdengyu课题专家组·2020-04-08 10:50
系统工程师·江西农信

技术技巧---SFTP简介和常见问题处理

字数 3609阅读 2551评论 0赞 1

介绍

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp与ftp 有着几乎一样的语法和功能。SFTP为SSH的一部分,是一种文件传输的安全方式,SFTP是SSH软件包中的一个安全文件传输子系统。SFTP和FTP的主要区别:
1、sftp无需安装额外软件,网络传输加密。受加密影响,sftp速度比FTP略低;
2、默认且仅使用二进制模式传输,不容易出现传输导致文件内容改变的问题;
3、网络安全策略简单,只需开通客户端至服务端22端口即可,不存在ftp协议中主动模式和被动模式问题;
4、只能使用操作系统用户登录,不支持虚拟用户;
但是,常用的SFTP服务为ssh服务的一部分,不利于网络安全管理,生产环境可以部署Proftpd SFTP服务规避该问题。

SFTP基础管理

1.服务端
(1)打开sshd服务

service sshd start

(2)确保无防火墙阻挡ssh

getenforce      //确保为Disalbed
service iptables stop  //关闭防火墙,或配置允许通过22端口

2.客户端

  • SecureCRT
    1、SSH登录后在标签上鼠标右键

2、直接登录sftp

  • sftp命令
    sftp user@server-ip

SFTP指令

help  //查看帮助
pwd   //查看远程服务器当前路径
cd    //切换远程服务器路径
lcd   //切换本地路径
put   //上传文件到远程服务器
get   //下载文件到本地
!    //切换到本地shell,使用exit可回到sftp
bye   //退出

SFTP安全设置

1、创建禁止ssh登录用户

 useradd  <用户>  -d <家目录>  -s  /bin/false      

2、限制用户目录切换 编辑配置文件

vi /etc/ssh/sshd_config
Subsystem sftp   internal-sftp      //修改 Subsystem sftp 这一行
UsePAM yes
Match user <用户>               //多个用户需要分别配置此三行
ForceCommand internal-sftp
ChrootDirectory  <用户限制目录>   //用户限制目录当前目录和所有上级目录属主必须是root

重启服务

service sshd restart   //重启服务使配置生效

3、其他权限管理

限制用户目录后,由于目录属主为root,其他用户无法上传文件。可设置子目录属主为限制用户用于上传下载文件。

常见问题

1、多服务器共享服务IP

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
33:d8:59:89:dd:c6:8e:81:51:c4:3c:4a:96:78:af:9d.
Please contact your system administrator.
Add correct host key in /home/virtuser/.ssh/known_hosts to get rid of this message.
Offending key in /home/virtuser/.ssh/known_hosts:30
RSA host key for X.X.X.1 has changed and you have requested strict checking.
Host key verification failed.

多个服务器放置在应用负载后端或使用HA软件共享同一个服务IP时,客户端连接服务器会出现以上错误,原因是客户端记录的服务端主机公钥发生了变化。该功能可以防止服务端被仿冒,不过在内部网络使用时不需要该功能。

解决方式一、

可以修改StrictHostKeyChecking 和 UserKnownHostsFile 参数关闭该检查。

ssh  X.X.X.1  -o StrictHostKeyChecking=no id
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
33:d8:59:89:dd:c6:8e:81:51:c4:3c:4a:96:78:af:9d.
Please contact your system administrator.
Add correct host key in /home/virtuser/.ssh/known_hosts to get rid of this message.
Offending key in /home/virtuser/.ssh/known_hosts:30
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

临时修改方式:

临时禁用对登录服务器的指纹检查。

ssh  X.X.X.1  -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null id


sftp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null   X.X.X.1

永久修改方式: 此方式将使此服务器登录其他服务器都不做指纹检查。

vim $HOME/.ssh/config     //config文件默认没有,直接新建 
StrictHostKeyChecking  no    //不询问自动接收公钥
UserKnownHostsFile  /dev/null    //公钥记录到一个空设备,免于比对公钥而导致告警

解决方式二、

通过复制服务端私钥和公钥到另外一台服务器,伪造相同的服务器验证指纹。此方式可能使被伪造指纹服务器被其他已记录指纹服务器认为非法。

mv /etc/ssh/*key*   /root/backup_ssh/         //移动需伪造服务器的原密钥文件到其他备份目录
scp  /etc/ssh/*key*   <需伪造指纹的服务器ip>:/etc/ssh       //复制密钥文件到需要伪造指纹服务器


如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广