原理:就是用公钥和私钥之间验证替代密码验证,公钥在远程机器上,私钥在本地机器上。


1、远程:192.168.1.11

2、本地:192.168.1.10


步骤

1、创建密钥

ssh-keygen -t rsa
luoyangbo@localhost:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): (忽略)
Enter same passphrase again: (忽略)
Your identification has been saved in /home/luoyangbo/.ssh/id_rsa.
Your public key has been saved in /home/luoyangbo/.ssh/id_rsa.pub.

2、复制公密到服务器




scp id_rsa.pub luoyangbo@192.168.1.11:/home/luoyangbo/.ssh/192.168.1.10


luoyangbo@localhost:~/.ssh$ scp id_rsa.pub miao@192.168.1.112:/home/luoyangbo/.ssh/192.168.1.11
luoyangbo@192.168.1.11's password:
id_rsa.pub                                                                   100%  404     0.4KB/s   00:00

3、添加公密到192.168.11的信任区域

cat 192.168.1.10 >> authorized_keys


注: 2,3两步可由命令ssh-copy-id一步到位

ssh-copy-id luoyangbo@192.168.1.11


luoyangbo@localhost:~/.ssh$ ssh-copy-id luoyangbo@192.168.1.11

Password:
Now try logging into the machine, with "ssh 'luoyangbo@192.168.1.11'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

4、启动ssh-agent

如果ssh 192.168.11返回 Agent admitted failure to sign using the key
ps -Af | grep agent查看有无ssh-agent有无运行,若没有

luoyangbo@localhost:~/.ssh$ ssh-agent

5、添加id_rsa到ssh-agent

luoyangbo@localhost:~/.ssh$ ssh-add id_rsa


PS:遇到问题&解决办法

   一切完成后,ssh远程仍然需要密码验证。

   这时只需要修改远程机器.ssh及其下面文件的权限即可

chown username: /home/username/.ssh 
chown username: /home/username/.ssh/* 
chmod 700 /home/username/.ssh 
chmod 600 /home/username/.ssh/*