一、两台Linux服务器和客户端 A:主机服务器   B:客户端服务器

在主机服务器A上用ssh命令生成密匙对,命令如下:ssh-keygen -t rsa 然后一路回车即可

在当前用户目录:/home/root/.ssh/下找到 id_rsa.pub

scp 本地文件(id_rsa.pub) 远程用户名@远程主机(B)IP地址:远程主机的保存位置

现在到远程主机B查看是否有相应的文件,当然这里也要注意.ssh目录是否存在

把刚才传输过来的公钥追加到.ssh/authorized_keys文件里面

命令如下:

          cat id_rsa.put >> .ssh/authorized_keys

chmod 700 .ssh

chmod 600 .ssh/authorized_keys

配置的时候注意权限的设置

二、rsync命令实现数据同步出错

在使用rsync同步时还是需要输入密码,查看系统日志发现:

Jan 21 09:49:05 localhost sshd[44946]: User tomcat not allowed because account is locked

Jan 21 09:49:05 localhost sshd[44946]: input_userauth_request: invalid user tomcat [preauth]

Jan 21 09:49:11 localhost sshd[44946]: Connection closed by 192.168.2.250 [preauth]

通过日志查看,刚开始以为是 Tomcat用户被锁定了:

=============== linux 用户解锁 =====================

查看用户:pam_tally2 --user 账号

解锁用户:pam_tally2 -r -u 账号

通过pam_tally2 --user指令发现没有锁定,最终通过查找资料是sshd没有开启 PAM

  1. PAM is not enabled for SSH service, it is commented or set to "no" explicitly:

    ~# grep UsePAM /etc/ssh/sshd_config
    #UsePAM yes

开启sshd_config UsePAM yes;service sshd restart 出现新的问题,普通用户无法登陆

cd /etc/pam.d;ls -l sshd 查看此文件是否存在,没有则需创建

#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth

重新开启 UsePAM yes;service sshd restart成功解决问题!