Linux sftp添加用户及免密登录设置
sftp用户添加
添加用户组
groupadd sftpgroup
添加用户,并添加到组,禁止登录
useradd -s /sbin/nologin -g sftpgroup sftpuser
设置密码 密码需要输入两次
passwd sftpuser
设置用户home目录的权限
chmod 777 /home/sftpuser
修改配置文件,设定sftp的登录用户组和访问根目录,如果不确定的请先备份这个配置文件
vi /etc/ssh/sshd_config
#修改以下配置
# Subsystem sftp /usr/libexec/openssh/sftp-server #注释掉原来的
Subsystem sftp internal-sftp #新增
###一定要在文件最后追加
Match Group sftpgrep
ChrootDirectory /home/sftp #设定属于用户组sftpgrep的用户访问的根文件夹,所有sftp用户都只能访问这个目录
#或者写成%h 访问当前sftp用户的home文件夹
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no #设置不允许SSH的X转发
保存退出后重启
service sshd restart
使用其他机器或者本地登录sftp测试,输入密码,测试路径是否有问题
sftp 用户名@主机ip
设置sftp免密登录
修改配置文件并重启
vi /etc/ssh/sshd_config
#修改以下配置
#在配置文件上是被注释掉的,放开就行
RSAAuthentication yes
PubkeyAuthentication yes
获取客户机的公钥
ssh-keygen
#连续两次回车
#第一个回车是确认密钥的生成路径和文件名
#第二个回车是设置私钥密码
将获取到客户机的公钥.pub文件发送到服务器,并安装公钥
cd /root/.ssh #进入到默认.ssh目录
cat cat id_rsa.pub >> authorized_keys #安装公钥
修改文件权限
cd /root/.ssh #进入到默认.ssh目录
chmod 600 authorized_keys #设置600权限
chmod 700 ~/.ssh #设置700权限
从客服机测试免密登录,如果第二次还需要输入密码请确定步骤4文件权限是否正确
如果sftp用户无法上传文件,请修改sftp访问目录的权限
chown -R sftpuser.sftpgroup /home/sftp