日常工作中很多情况下都需要登录服务器进行管理,一般都是用ssh进行连接,为了防止密码外泄,可以配置下ssh的免密码登录。
首先服务器两台:
A:43.224.34.38
B:104.238.161.48
配置的结果是B机器可以免密码登录到A服务器。
首先在B服务器上生成本机的公私密钥:
也可以执行:ssh-keygen -t rsa -P ''生成公私密钥 -P是:提供(旧)密语。默认设为空
过程为:
操作生成了两个文件,一个是id_rsa,一个是id_rsa.pub,为了传输文件的时候出现名称冲突,把id_rsa.pub名称修改为104.238.161.48-id_rsa.pub。
用scp将104.238.161.48-id_rsa.pub文件拷贝到A服务器的.ssh目录下:
scp 104.238.161.*-id_rsa.pub root@43.224.34.38:/root/.ssh 这条命令为准
scp ./104.238.161.\*-id_rsa.pub root@43.224.34.38:/root/ssh
在A服务器的/root/.ssh目录下多了一个文件,先看下/root/.ssh目录中的authorized_keys文件的内容,开始的时候是空的,然后将拷贝过来的文件内容导入到authorized_keys中: 如果服务器/root/.ssh目录中无authorized_keys文件需要手动创建,命令:touch authorized_keys
[root@vultr .ssh]# cat authorized_keys
[root@vultr .ssh]# cat 104.238.161.48-id_rsa.pub >> authorized_keys
[root@vultr .ssh]# cat authorized_keys
ssh-rsa *********QDLNuwwf7wUTg829nM2/KFqwW24WXA3OBBkX21cXlo*************pduE62NTHj5fbsgtljVlVk7y3iaIz79KDPgRQPpt779cTuB274mdWQx7g3b5c/tya/OqSTsHWU7PgMkck6RnYZGaFtxJEhZrXyq************z9JVUCToP9DOKgRQsEZFgbT5INMTh3j9o5L/LbGxILBp2vlEJfJQjR96sTumaww95dqKeEgOngpEA2tj74wlFNLQgT9RTzY0U0CWgW8DyISX2IroVqkA9IaTwvYCp9SJF4xDQbl6pzdlYkuCzpwvfc20elB6S0Z root@****
[root@vultr .ssh]#
修改SSH配置文件"/etc/ssh/sshd_config"的下列内容(将三行内容前面的注释去掉),使其无密码登录有效。
sudo vim /etc/ssh/sshd_config 编辑文件
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
重启生效:Centos7.2重启方法
从执行结果可以看出,已经将B的密钥导入了A的authorized_keys文件中。导入完毕之后要修改一下authorized_key文件的访问权限:
chmod 700 ~/.ssh/
chmod 600 authorized_keys
这样配置完毕之后,在B机器就能不用密码登录到A机器了,在B机器上直接执行:ssh 43.224.34.38就能登录到A机器,如果想从A免密码登录到B,进行反向的相同的操作即可。