linux搭建sftp服务器并设置免密登录

参考资料:linux环境快速搭建sftp服务以及设置免密 - 渐逝的星光 - 博客园 (cnblogs.com)

网上很多搭建sftp的文章,最后免密登录设置都有点问题,研究了一下终于通了,做个记录

搭建服务器过程(可以见上面的参考资料):

一、部署sftp服务

(本质是使用ssh中的sftp服务)

1、创建sftp组 :

groupadd sftp

2、创建一个sftp用户,用户名为sftp_upload :

useradd -g sftp -s /bin/false sftp_upload

3、修改密码:

passwd sftp_upload

4、sftp组的用户的home目录统一指定到/sftp下:

mkdir -p /sftp/sftp_upload

5、指定sftp_upload的home为/sftp/sftp_upload:

usermod -d /sftp/sftp_upload sftp_upload

6、配置sshd_config:

vi /etc/ssh/sshd_config

  6.1、输入/Subsystem搜索到下列内容,然后注释:

# Subsystem sftp /usr/libexec/openssh/sftp-server

  6.2、在文件结尾处添加下面后保存:

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

7、设定Chroot目录权限:

chown root:sftp /sftp/sftp_upload
chmod 755 /sftp/sftp_upload

8、建立SFTP用户登入后可写入的目录:

mkdir /sftp/sftp_upload/upload
chown sftp_upload:sftp /sftp/sftp_upload/upload
chmod 755 /sftp/sftp_upload/upload

9、输入命令:

setenforce 0

10、重启sshd服务:

service sshd restart

11、ifcong查询ip,进行登录:

sftp sftp_upload@localhost

二、设置免密登录

  (本质是将需要登录的服务器的公钥数据加载到需要免密登录的服务器的authorized_keys文件中。【实际是配置ssh免密】)

1.在需要连接sftp的服务器上执行,(注意选择好使用用户)

 ssh-keygen -t rsa

  回车两次生成rsa公私钥文件,可打开/home/用户/.ssh/文件夹查看,复制id_rsa.pub内容准备。

2.在部署sftp服务器上,打开/sftp/sftp_upload 文件夹(此处以sftp_upload为例),新建一个.ssh文件夹,在.ssh文件夹内新建名为authorized_keys的文件,将复制过来的id_rsa.pub中的内容增加到authorized_keys文件中。

此处注意,需要更改.ssh和authorized_keys的owner,因为sftp_upload只支持sftp协议,所以需要在root账户下创建.ssh和authorized_keys后,执行一下命令:

chown -R sftp_upload:sftp /sftp/sftp_upload/.ssh

接下来就可以sftp [email protected]直接进行登录了。

你可能感兴趣的:(解决问题,服务器,linux,运维)