1、 root ssh免密登录
即 b服务器的root,在别的服务器用root, ssh免密登录 b服务器
- 在a服务器这台机器上输入:ssh-keygen,如有提示,按回车,生成a服务器这台机器的公钥和私钥。生成的公钥和私钥在root/.ssh目录下。
id_rsa是私钥,id_rsa.pub是公钥。 - 在a服务器这台机器上输入:ssh-copy-id 用户名@服务器b的ip 按回车,将刚刚a服务器这台机器的公钥复制到bb服务器这台机器的用户目录下,保存在b服务器的 root/.ssh/authorized_keys文件中。这个文件的内容与生成的公钥id_rsa.pub是一样的。
- 输入b服务器这台服务器的登录密码,这时免密配置成功。
- 在a服务器客户端这台机器上输入:ssh 192.168.56.101,再也不用密码了
1、ssh-keygen 在客户端生成一对公钥和私钥
2、ssh-copy-id 用户名@ip地址 地址将公钥复制到服务器
3、ssh 用户名@ip地址 地址登录的另一台主机
2 普通户用免密登录
即 b服务器的 普通用户 在别的服务器 免密登录 b服务器
如若不是root用户,而是b服务器的普通用户 免密登录
在a服务器
1. ssh-keygen
2. ssh-copy-id 服务器bb的ip
保存在b服务器的 /root/.ssh/authorized_keys文件中
3. 在b服务器,将生成的此文件移动到 普通户的 /home/用户名/.ssh/
4. cd /root/.ssh/
5. cp authorized_keys /home/用户名/.ssh
6. chmod 644 /home/用户名/.ssh/authorized_keys 即 公钥644权限
7. 此用户就可以免密登录 ssh和sftp了
8.
2、创建SfTP 账号 访问服务器 指定目录
1 创建用户
//useradd 用户名
useradd tenx
//echo teykt@2020 | passwd --stdin 用户名
echo teykt@2020 | passwd --stdin tenx
//注意: 密码为 teykt@2020 组名等于用户名tenx
//看看有没有设置成功
groups 用户名
groups tenx
2 或者
useradd 用户名
passwd 用户名
// 将用户加入组中
gpasswd -a 用户名 组名 //gpasswd -a test test2 将用户test加入到test2组
groupadd 组名 //创建组
usermod -g 组名 用户名 //修改用户的主组
usermod -G 从组名 用户名 //修改用户的从组,可以多个,组名之间使用逗号隔开
gpasswd -d 用户名 组名 //将用户从从组中删除
//看看有没有设置成功
groups 用户名
3 更改sshd_config文件
vi /etc/ssh/sshd_config
添加一以下内容:
Match group tenx #允许用户访问的目录,此处我们设置用户的组
ChrootDirectory /usr/treatment_payment/sftp #指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写
X11Forwarding no # #禁止X11转发
AllowTcpForwarding no ##禁止tcp转发
ForceCommand internal-sftp # #指定sftp命令,不能ssh连接
//Match group 组名
//此处设置控制的组 即所有在该组下的用户的根目录 都是下面的 ChrootDirectory配置的目录
//多个用户,每个用户需要设置不同目录,可用以下方法:
//也可以设置用户 多个用户请重复配置这两行:
Match user sftp2
ChrootDirectory /home/user/sftp2
##1 注释掉此行
# Subsystem sftp /usr/libexec/openssh/sftp-server
##2 并在其下面添加一下行
Subsystem sftp internal-sftp
##3 然后
systemctl restart sshd
4 设置允许用户访问目录的权限
//chown 更改文件夹的拥有者 和组
//将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;
//组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
//系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限
//chown [选项]... [所有者][:[组]] 文件...
//chown 用户名或者用户ID:组名或者组ID 文件夹路径
// chown -R 用户:组 文件夹 联应用到目录里的所有子目录和文件
chown root:tenx /usr/treatment_payment/sftp
5 修改文件夹的权限
// chmod 755 文件夹
// chmod -R 755 文件夹
// -R 是指级联应用到目录里的所有子目录和文件
chmod 755 /usr/treatment_payment/sftp
// chmod ugoa+rwx 文件夹 修改文件夹的权限
// chmod u+rwx /usr/treatment_payment/sftp
#usermod tenx -s /sbin/nologin #设置该sftp账号不允许登录
# 重启sshd
systemctl restart sshd
systemctl start sshd 启动
systemctl status sshd 状态
systemctl restart sshd 重启
6 设置用户上传文件权限
[root@localhost ~]]# mkdir /usr/treatment_payment/sftp/send
//chown 用户名或者用户ID:组名或者组ID 文件夹路径
[root@localhost ~]]# chown -R tenx:tenx /usr/treatment_payment/sftp/load
//setfacl -m g:组名:rwx /usr/treatment_payment/sftp/load
//setfacl -m u:用户名:rwx /usr/treatment_payment/sftp/load
[root@localhost ~]]# setfacl -m u:tenx:rwx /usr/treatment_payment/sftp/load
查看
[root@localhost ~]]# getfacl /usr/treatment_payment/sftp/load
getfacl: Removing leading '/' from absolute path names
# file: home/tenx/
# owner: root
# group: root
user::rwx
user:tenx:rwx
group::r-x
mask::rwx
other::r-x
7 sftp连接服务器
#sftp 用户名@服务器ip
sftp ndykt@192.168.7.3