SSH免密码之后,只要通过指定主机地址和端口号就可以实现不同计算机之间访问,而且访问不需要密码。SSH免密码登录主要采用的算法有:对称加密算法和非对称加密算法。
主要原理
假设有两个linux系统simple1和simple2
操作步骤
-
首先在s1上 ssh-kegen -t -rsa 生成一对钥匙id_rsa(私钥)和id_rsa.pub(公钥)
-
s1执行 ssh-copy-id simple2 ,在simple2端生成authorized_key文件并保存s1上的id_rsa.pub信息内容
-
s1向s2发送一个ssh请求
-
请求在传输过程中带有s1发送的指令信息,如(root simple1+指令等)
-
s2接收到s1的信息后,会根据指令信息到authorized_key中查找,若是没找到信息,则向s1返回要输入密码,若是找到信息s2会随机生成一个字符串,自己保存一份,然后使用s1的公钥进行加密
-
将加密的字符串发回给s1
-
s1接收到加密字符串后,用私钥进行解密
-
解密的字符串再发送回给s2
-
s2接收s1发送的解密后的字符串,并与原来的字符串进行比对,若是一致则能免密码登录
- 进入ssh目录
cd ~/.ssh
- 生成钥匙。使用ls命令会发现生成了id_rsa和id_rsa.pub两个文件
ssh-keygen -t rsa
- 将公钥拷贝到另一台机器上
ssh-copy-id 主机名
- 到另外一台机器上进入ssh目录,查看内容会看到authorized_key,其内容就是密码值。现在就能直接访问了