linux系统创建sftp用户&实现密码登录和秘钥登录

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接。 https://blog.csdn.net/axing2015/article/details/89261879

目标:

  • 使用sftp命令从linux系统A登录linux系统B
  • 限制只能使用sftp登录,限制登录目录
  • 可密码登录,可秘钥登录
一、在linux系统A上的操作
  1. 在/home中创建目录

    #创建ftp用户家目录ftpuser
    mkdir /home/ftpuser
    #创建用于放秘钥的.ssh目录
    mkdir /home/ftpuser/.ssh
    #创建一个zhangsan用户登录限定目录
    mkdir zhangsan
    
  2. 创建用户组ftpuser,所有使用sftp登录的用户都可以放到此组中,便于管理

    groupadd ftpuser
    
  3. 创建用户zhangsan

    #家目录/home/ftpuser 组ftpuser 禁止登录shell的用户/sbin/nologin 
    useradd -d /home/ftpuser -g ftpuser -s /sbin/nologin -M zhangsan
    
  4. 设置用户密码(为了使用密码登录)

    #根据提示输入两次相同密码
    passwd zhangsan
    
  5. 在sshd_config添加用户配置

    vi /etc/ssh/sshd_config
    #修改Subsystem
    Subsystem sftp internal-sftp
    #限制的用户,多个用户以逗号隔开
    Match User zhangsan
    #限制的用户组,多个用户组以逗号隔开
    #Match Group ftpuser 
    #不允许X11转发   
    X11Forwarding no  
    #不允许允许tcp端口转发,保护其他的tcp连接
    AllowTcpForwarding no
    #增加
    ForceCommand internal-sftp
    #用户的根目录,用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户就只能在用户目录下活动。也可用%u,%u代表用户名
    ChrootDirectory /home/ftpuser/%u
    
  6. 重启SSH服务

    systemctl restart sshd
    

    注:上面操作完成后就可以在linux系统B上直接使用密码登录啦,登录命令参考下面的第6条

二、在linux系统B上的操作
  1. 先查看有没有.ssh目录

    ll ~/.ssh
    
  2. 如果上面查询没有,执行下面命令创建.ssh目录

    mdkir ~/.ssh
    
  3. 使用下面命令生成秘钥,遇到提示直接回车即可

    ssh-keygen
    
  4. 查看秘钥文件

    #使用下面命令查看秘钥文件,id_rsa是私钥,id_rsa.pub是公钥
    ll ~/.ssh
    
  5. 把公钥~/.ssh/id_rsa.pub内容追加到linux系统A(需要登录服务器)/home/ftpuser/.ssh/authorized_keys文件中

    #跨服务器复制,需要知道目的服务器登录密码
    scp ~/.ssh/id_rsa.pub [email protected]:/home
    #在linux系统A中执行下面命令,把复制来的/home/id_rsa.pub内容追加到/home/ftpuser/.ssh/authorized_keys文件中
    cat /home/id_rsa.pub >> /home/ftpuser/.ssh/authorized_keys
    
  6. 密码登录

    #输入下面命令,根据提示输入密码(上面创建用户输入的密码)
    sftp -P 22 [email protected]
    #如果报下面登录异常
    Couldn't read packet: Connection reset by peer
    解决思路:
    	查看sshd_config配置是否正确;
    	使用命令`ll /home/ftpuser/`查看目录`zhangsan`所属用户是否root,使用命令`chown root:root zhangsan`来修改目录所属的用户和组
    
  7. 秘钥登录

    #输入下面命令,指定端口,指定私钥
    sftp -P 22 -i ~/.ssh/id_rsa [email protected]
    

猜你喜欢

转载自blog.csdn.net/axing2015/article/details/89261879
今日推荐