ssh配置免密码登陆

平常工做中不少状况下都须要登陆服务器进行管理,通常都是用ssh进行链接,为了防止密码外泄,能够配置下ssh的免密码登陆。html

首先服务器两台:服务器

A:43.224.34.*dom

B:104.238.161.*ssh

配置的结果是B机器能够免密码登陆到A服务器。ide

首先在B服务器上生成本机的公私密钥:ui

ssh-keygen -t rsa -P ''

过程为:spa

[root@XX .ssh]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d3:81:0f:f9:6f:3e:d5:aa:ba:28:5f:a8:27:ac:70:88 root@liujianjun
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|         o       |
|        + .      |
|         = .     |
|        S +    . |
| . .     o .  . .|
|E o ..  . . o. . |
|   o  +..o o. .  |
|    ...=o oooo   |
+-----------------+
[root@XX .ssh]# l
total 20
drwx------ 2 root root 4096 Oct 29 14:05 .
dr-xr-x--- 7 root root 4096 Oct 29 12:30 ..
-rw------- 1 root root    0 Oct 21 09:57 authorized_keys
-rw------- 1 root root 1675 Oct 29 14:05 id_rsa
-rw-r--r-- 1 root root  397 Oct 29 14:05 id_rsa.pub
-rw-r--r-- 1 root root  350 Oct 29 12:09 known_hosts

操做生成了两个文件,一个是id_rsa,一个是id_rsa.pub,为了传输文件的时候出现名称冲突,把id_rsa.pub名称修改成104.238.161.*-id_rsa.pub。code

scp将104.238.161.*-id_rsa.pub文件拷贝到A服务器的.ssh目录下:regexp

scp ./104.238.161.\*-id_rsa.pub root@43.224.34.*:/root/shh

在A服务器的/root/.ssh目录下多了一个文件,先看下/root/.ssh目录中的authorized_keys文件的内容,开始的时候是空的,而后将拷贝过来的文件内容导入到authorized_keys中:htm

[root@vultr .ssh]# cat authorized_keys 
[root@vultr .ssh]# cat ./104.238.161.\*-id_rsa.pub >> authorized_keys 
[root@vultr .ssh]# cat authorized_keys 
ssh-rsa *********QDLNuwwf7wUTg829nM2/KFqwW24WXA3OBBkX21cXlo*************pduE62NTHj5fbsgtljVlVk7y3iaIz79KDPgRQPpt779cTuB274mdWQx7g3b5c/tya/OqSTsHWU7PgMkck6RnYZGaFtxJEhZrXyq************z9JVUCToP9DOKgRQsEZFgbT5INMTh3j9o5L/LbGxILBp2vlEJfJQjR96sTumaww95dqKeEgOngpEA2tj74wlFNLQgT9RTzY0U0CWgW8DyISX2IroVqkA9IaTwvYCp9SJF4xDQbl6pzdlYkuCzpwvfc20elB6S0Z root@****
[root@vultr .ssh]# 

从执行结果能够看出,已经将B的密钥导入了A的authorized_keys文件中。导入完毕以后要修改一下authorized_key文件的访问权限:

chmod 700 ~/.ssh/
chmod
600 authorized_keys

这样配置完毕以后,在B机器就能不用密码登陆到A机器了,在B机器上直接执行:ssh 43.224.34.*就能登陆到A机器,若是想从A免密码登陆到B,进行反向的相同的操做便可。