• SSH使用公钥私钥无密码登录远程服务器
  • 标签 : 其他    来源 : ssh,私钥登录
  • SSH无密码登录使用公钥和私钥


    linux 下可以用ssh-keygen生成公钥私钥对,下面我以centos为例。


    机器A 172.16.16.129

    机器B 172.16.16.130


    现在想机器A通过ssh免密码登录到机器B


    1、在机器A下生成公钥私钥对。


    root#ssh-keygen -t rsa


    后面可加-P表示密码,-P ‘’ (-P后面两个单引号)表示空密码,也可以不用-P参数,这样就要三个回车,用-P就一次回车。


    它在/root/下生成.ssh目录,.ssh下有 id_rsaid_rsa.pub 私钥/公钥


    2、把机器A下的id_rsa.pub复制到机器B下,在机器B.ssh/authorized_keys文件里,用scp复制(windows下可用图形化工具winscp软件)。


    root#scp .ssh/id_rsa.pub root@172.16.16.130:/root/id_rsa.pub


    3、机器B把从A机复制的id_rsa.pub添加到.ssh/authorized_keys文件里


    root#mkdir .ssh

    root#chmod 0700 .ssh // (需要输入密码,注意必须将.ssh的权限设为700

    root#cat id_rsa.pub >> .ssh/authorized_keys // (将id_rsa.pub的内容追加到 authorized_keys , 注意不要用 > ,否则会清空原有的内容,使其他人无法使用原有的密钥登录)

    root#chmod 0600 .ssh/authorized_keys // authorized_keys 的权限要是 600


    第一次登录需要输入yes


    root#ssh -i id_rsa root@172.16.16.130


    end


    现在机器A可以无密码登录机器B了。


    小结:用来登录的机器使用私钥,被登录的目标机器使用公钥。上面用的是 rsa算法的公钥/私钥对,当然也可以用 dsa(对应的文件是 id_dsa\id_dsa.pub)其他配置同上。



    备注:SSH命令指定密钥登录远程主机,用-i指定私钥,-p指定端口,命令如下:ssh -i ~/.ssh/id_rsa root@172.16.16.130 -p 22