设为首页 收藏本站
查看: 7656|回复: 0

[经验分享] SUSE Linux SFTP服务器配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-20 08:37:53 | 显示全部楼层 |阅读模式
公司某应用系统与合作伙伴对接时,对方需要使用应用程序通过SFTP免输入密码到我公司服务器上传下载文件。之前其他合作伙伴都是通地FTP交换文件的。
在网上查了些资料大部分基于CenterOS RedHat配置的SFTP,在昨天在SUSE 11.1上配置了下SFTP,特记录备忘。
1.实现目标:
(1)SUSE 11.1环境下 SFTP通过RSA密钥配对免密码访问
(2)限制SFTP用户只在自己根目录下访问

2.SFTP 服务配置
sftp服务复用ssh服务,sftp的配置即修改/etc/ssh/sshd_config配置
【a】注释下面这几条

#Subsystem      sftp    /usr/lib64/ssh/sftp-server
下面这几条一定要注释要不然sshd启不来,暂时不知道以下几条是做什么用的,注释后没任何异常
#This enables accepting locale enviroment variables LC_* LANG, see sshd_config(5).
#AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
#AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
#AcceptEnv LC_IDENTIFICATION LC_ALL

【b】添加下面这几条
Subsystem sftp internal-sftp
Match group sftp     #指定以下的行仅匹配sftp用户组的用户
ChrootDirectory %h   #指定用户验证后用于chroot环境的路径 %h是指用户根目录
ForceCommand internal-sftp  #执行内部sftp,并忽略任何~/.ssh/rc文件中的命令
X11Forwarding no   
AllowTcpForwarding no


【c】增加支持RSA密钥认证
AuthorizedKeysFile .ssh/authorized_keys   #此参数用于说明公钥文件位置,指用户根目录.ssh文夹authorized_keys文件作为SRA公钥
PasswordAuthentication no   #设置成no强制使用密钥访问,而不能用户名及密码;如果设置成yes表示两种方式都可以访问,一般建议用yes

至此,SFTP服务器端配置完成,然后重启sshd服务


3.SFTP服务器上增加sftp用户
【a】rman:/usr/sftp-dir # useradd  -G sftp  -d /usr/sftp-dir/test1  -s /sbin/nologin   test1
     //-s /sbin/nologin 禁止test1用户登陆操作系统
【b】rman:/usr/sftp-dir # mkdir /usr/sftp-dir/test1     //用root用户为test1账户建目录
检查test1目录权限,必须是root用户755权限
rman:/usr/sftp-dir # ll
drwxr-xr-x 2 root root 4096 Oct 18 09:25 test1

rman:/usr/sftp-dir #
【c】在用户目录下建上传下载目录
rman:/usr/sftp-dir/test1 # mkdir upload
rman:/usr/sftp-dir/test1 # mkdir download
rman:/usr/sftp-dir/test1 # chown test1. upload/       //upload目录属主test1
rman:/usr/sftp-dir/test1 # ll
total 8
drwxr-xr-x 2 root  root  4096 Oct 18 09:40 download    //经过测试下载文件夹一定要755权限
drwxr-xr-x 2 test1 sftp 4096 Oct 18 09:40 upload

4.客户端服务器制作SRA密钥并上传至目标服务器
【a】制作RSA证书

test-lvm:~/.ssh # ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):             //免密码认码此处直接回车
Enter same passphrase again:                            //免密码认码此处直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f2:25:e6:5a:3d:2c:4f:d2:19:bf:3c:46:52:15:4f:db root@test-lvm
The key's randomart image is:
+--[ RSA 2048]----+
|              ...|
|              .oo|
|             . .E|
|            .    |
|      . S o.     |
|       = *.+.    |
|        * Bo.    |
|       o = oo.   |
|      .   ..o.   |
+-----------------+
【b】将RSA公钥(x.pub)上传到目标服务器sftp用户.ssh目录下test-lvm:~/.ssh # ls
id_rsa  id_rsa.pub
test-lvm:~/.ssh # scp id_rsa.pub  root@172.22.2.228:/usr/sftp-dir/test1/.ssh

【c】目标服务器.ssh目录下修改RSA公钥文件名
因当时在目标服务器sshd_config 指定证书名为authorized_keys
AuthorizedKeysFile.ssh/authorized_keys
所以,需要将修改公钥名

rman:/usr/sftp-dir/test1/.ssh # ls
id_rsa.pub
rman:/usr/sftp-dir/test1/.ssh # mv id_rsa.pub  authorized_keys
rman:/usr/sftp-dir/test1/.ssh # ll
total 4
-rw-r--r-- 1 root root 395 Oct 18 10:23 authorized_keys
rman:/usr/sftp-dir/test1/.ssh #
至此,SFTP RSA公钥配对完成



5.客户端服务器测试
使用 sftp sftp-user@sftp-ip 登陆不需要输入密码即表示成功

test-lvm:~/.ssh # sftp test1@172.22.2.228
Connecting to 172.22.2.228...
sftp> ls
download  upload   
sftp>

切换目录失败,只能在用户根目录下

sftp> cd /home
Couldn't canonicalise: No such file or directory
sftp>


6.需要注意的几点
SUSE Linux 与其他的不同之处
【a】配置sshd_config时, 一定要注释下面几条,否则sshd有务启不来

#This enables accepting locale enviroment variables LC_* LANG, see sshd_config(5).
#AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
#AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
#AcceptEnv LC_IDENTIFICATION LC_ALL

【b】配置下载文件夹的时候权限一定要如下示,否则使用root用户放在download文件夹的文件,sftp用户看不到,在suse 11.1 64bit 上反复测试过,也许是一个bug

rman:/usr/sftp-dir/test1 # ll
total 8
drwxr-xr-x 2 root  root  4096 Oct 18 09:40 download
drwxr-xr-x 2 test1 sftp 4096 Oct 18 09:40 upload


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-26230-1-1.html 上篇帖子: linux下ftp服务各种模式和ca证书认证的搭建 下篇帖子: vsftpd+MariaDB+pam搭建认证FTP服务 服务器 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表