一、安装配置sftp
1.下载
sudo apt install openssh-server
sudo apt install ssh
2.配置
sudo vi /etc/ssh/sshd_config
文件末尾增加:
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowAgentForwarding no
AllowTcpForwarding no
PermitTunnel no
ForceCommand internal-sftp
然后重新加载配置:
3.重启
sudo service ssh restart
4.创建用户和用户组
①创建sftp用户组:
sudo addgroup sftp
②创建用户并将用户添加到用户组:
sudo useradd -m sftpuser -g sftp
③修改密码:
sudo passwd sftpuser
sudo chmod 700 /home/sftpuser/
5.测试连接
sftp sftpuser@localhost
如果遇到错误Connection closed可以通过如下的方式查询错误日志
grep -i sftp /var/log/*
或者执行
sftp -vvv sftpuser@localhost
二、开启私钥访问
修改 /etc/ssh/sshd_config:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
cd ~
cd .ssh
然后把公钥copy到这个目录,文件名称改成authorized_keys
三、全套开启私钥的流程
1.开启私钥访问
修改 /etc/ssh/sshd_config:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存文件并重新加载SSH服务器配置:
sudo systemctl reload sshd
或者sudo service ssh restart
2.重新安装一个ubuntu服务器,生成公钥、私钥
2.1生成公钥、私钥
先测试下通过密码能不能访问
sftp jason@192.168.xx.232
输入密码
如果能进去,说明服务器是好的。
接下来开始生成公钥和私钥。
ssh-keygen -t rsa
一路回车,会生成两个文件
一个是公钥,一个是私钥
2.2复制公钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
#其中,username是登录服务器sftp的用户名,server_ip是服务器的IP地址。系统会提示你输入登录密码。
这时候可以到服务器上的~/.ssh/authorized_keys这个文件看里面是不是有内容
注意:是服务器上。
里面有内容,就说明已经传上去了。这里的内容就是跟你生成的id_rsa.pub内容一样。
2.3 测试连接
如果不要输入密码,就能进去,说明就好了。
2.4延申思路
如果多个用户需要用私钥访问,有两个途径:
(1)将id_rsa.pub的内容贴到authorized_keys的后面。
(2)编辑 /etc/ssh/sshd_config,在AuthorizedKeysFile .ssh/authorized_keys后面加文件名。
象这样
AuthorizedKeysFile .ssh/authorized_keys file1 file2