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服务规避该问题。
1.服务端
(1)打开sshd服务
service sshd start
(2)确保无防火墙阻挡ssh
getenforce //确保为Disalbed
service iptables stop //关闭防火墙,或配置允许通过22端口
2.客户端
help //查看帮助
pwd //查看远程服务器当前路径
cd //切换远程服务器路径
lcd //切换本地路径
put //上传文件到远程服务器
get //下载文件到本地
! //切换到本地shell,使用exit可回到sftp
bye //退出
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 条评论