- 在上面提到了ssh-keygen支持rsa1、dsa、ecdsa、ed25519和rsa这几种非对称加密算法,其中最常用的就是RSA和DSA,比如使用RSA算法来生成公私钥对的过程如下:
- nfer@nfer-VirtualBox:~$ ssh-keygen -t rsa
- Generating public/private rsa key pair.
- Enter file in which to save the key (/home/nfer/.ssh/id_rsa):
- Created directory '/home/nfer/.ssh'.
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /home/nfer/.ssh/id_rsa.
- Your public key has been saved in /home/nfer/.ssh/id_rsa.pub.
- The key fingerprint is:
- 16:77:45:71:31:7c:67:4f:91:09:07:74:4d:30:83:48 nfer@nfer-VirtualBox
- The key's randomart image is:
- +--[ RSA 2048]----+
- | .E..*@XO|
- | . ..oBB|
- | . . . o+|
- | o . .|
- | S |
- | . |
- | |
- | |
- | |
- +-----------------+
- nfer@nfer-VirtualBox:~$
注意上面有三处需要输入信息,分别是:
- 存储公私钥的文件夹位置,如果不输入,则默认为~/.ssh/,文件名则默认是id_rsa和id_rsa.pub
- 使用该公私钥时是否需要密码,如果不输入则表示不需要密码
- 再次确认是否需要密码
将User在A主机的公钥加入到ssh的信任公钥列表中
将刚才创建的~/.ssh/id_rsa.pub文件中的内容拷贝添加到B主机上的~/.ssh/authorized_keys文件中(如果没有则创建一个),这个时候就建立了一条A-->B的信任关系。注意这个信任关系是有方向性的,如果要建立从B-->A的信任关系,则操作步骤和上面的类似,只不过要反过来。
建立好信任关系后,这个时候使用任何ssh相关的工具则都无需输入远端的登陆密码(如果在创建公私钥对时输入了密码,那么这个时候还需要输入这个密码才能使用公私钥对)。