ssh可以基础密码验证登录,也可以基于秘钥登录实现免密码验证

  1.  		基本原理就是在本地主机上生成一对私钥和公钥,私钥自己保留,把公钥发给你想登录服务器的哪个用户的根目录就可以实现秘钥登录,公钥可以发给多个用户。
    
  2.  		具体实现步骤如下
     										`ssh-keygen `交互式模式,先进入交互模式,等待用户输入生成秘钥对的路径,在不输入任何路径的情况下回车会生成在当前用户的家目录下的`.ssh/下`,然后会出现为秘钥对设置密码的界面。直接回车代表不设置。
    

红色的上面为私钥,下面为公钥,从文件名来看我们生成的是rsa算法的秘钥,在默认情况下是 "rsa" 算法加密的,我们还可以指定其它算法 " dsa"、 " ecdsa"、 "ed25519".

我们这里用客户机tyy:192.168.1.2 ,登录客户机tyy1:192.168.1.3,如果客户机tyy当前所在用户和你想登录的客户tyy1的用户名相同可以直接 ssh 192.168.1.3,还有加入你A主机当前在root的下,想要登录tyy1的aaa用户的话用ssh aaa@192.168.1.3, 若果使用的最小话装机的话,需要装openssh-clients这个包。并且首次登录需要输入yes。 接下来我们就把公钥上传到B的root目录下来ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.3,当然我们还可以用 cat /root/.ssh/id_rsa.pub | ssh -p 22 root@192.168.1.3 "umaks 077;mkdir ./.ssh/;cat - >> ./ssh/authorized_keys"

这样我们就成功的上传了一个秘钥接下来我们登录试试看。

以上就设置完成了指定端口的话就是 -p选项

可能出现的问题

ssh-keygen -f  /test/id_rsa     

上诉命令表示在/test/下生成id_rsa私钥及对应的公钥,在使用ssh 连接的时候可以使用-i选项。如下:

ssh-keygen -f /testdir/test/id_rsa
ssh-keygen -f /testdir/test/id_rsa -p

上述是设置秘钥秘钥,回车解除密码