本文首发于烂泥行天下linux
在上一篇文章《烂泥:学习ssh之ssh无密码登录》中,咱们讲解了如何使用ssh密钥,免密码登录服务器。shell
这篇文章咱们再来说解,如何把已经生成的密钥随身携带。windows
有关如何生成ssh密钥的详细步骤,能够查看上一篇文章《烂泥:学习ssh之ssh无密码登录》。安全
1、生成密钥服务器
如今咱们经过xshell生成密钥,注意:本章节,我只进行截图,不作进一步的文章说明。ssh
以下:ide
咱们如今有了公钥和私钥:id_dsa_150518.pub、id_dsa_150518,把公钥id_dsa_150518.pub上传到须要链接的服务器192.168.1.9的ilanni用户的对应目录下。以下:学习
ifconfig eth0|grep 'inet addr'|awk '{print $2}'|cut -d: -f2spa
cat .ssh/authorized_keys3d
如今咱们就能够把这个密钥id_dsa_150518随身携带,不管在什么地方均可以链接192.168.1.9服务器。
注意:咱们如今所说的密钥,其实就是上面xshell生成的ssh私钥。
同时还要注意私钥id_dsa_150518,咱们能够携带该私钥文件,也能够把该私钥的内容复制到其余文件中也行。以下:
注意:ssh私钥的内容在复制,不能缺乏任何一个字符。
2、windows下链接ssh服务器
假如,咱们如今到一个新的地方,使用的OS是windows,而ssh的私钥就在咱们身边的话,咱们就能够经过该私钥链接ssh服务器了。
在此,咱们仍是以使用xshell来链接ssh服务器为例,进行讲解。固然你也可使用其余的ssh客户端软件,进行链接。
使用以下命令链接ssh服务器,以下:
ssh ilanni@192.168.1.9
此时xshell会弹出要你输入密码的界面。以下:
咱们不选择Password选项,要选择Public Key选项。而后选择“浏览”--“文件”,以下:
找到咱们携带的ssh的私钥文件id_dsa_150518,以下:
选择私钥文件,以下:
经过上图,咱们能够很明显的看出在链接192.168.1.9服务器时,xshell确实没有提示咱们要输入密码。
注意:若是你的私钥文件不是随身携带而是记住私钥内容的话,你也能够创建一个文件,好比ilanni.txt,把私钥的内容复制到ilanni.txt进去保存。
在链接ssh服务器选择密钥文件时,只需选择ilanni.txt文件便可。
3、linux下链接ssh服务器
在第二章节中,咱们讲解了如何在windows下经过ssh的私钥链接ssh服务器。在这章节,咱们再来说解如何在linux下,经过ssh私钥链接ssh服务器。
先把ssh的私钥上传到linux主机上或者在linux主机上新建一任意文件,把私钥的内容复制到该文件中,而后使用以下命令进行链接:
ssh -i id_dsa_150518 ilanni@192.168.1.9
经过上图,咱们能够很明显的看出,链接ssh服务器192.168.1.9仍是须要输入用户密码的。
是咱们的操做不对仍是怎么回事呢?
若是你仔细看上述的提示的话,你会发现这个是由于ssh私钥用户权限的设置太大,不安全形成的。
ssh为了安全起见,对私钥文件的权限通常要设置为600,即用户本身对该私钥文件具备读写权限,其所在的用户组及其余用户组对私钥文件不具备任何权限。
咱们如今只须要把ssh私钥文件的权限设置为600便可,以下:
chmod 600 id_dsa_150518
再次使用ssh -i id_dsa_150518 ilanni@192.168.1.9命令进行链接,以下:
经过上图,咱们能够很明显的看出,如今咱们已经进入到192.168.1.9这台服务器中,并且是没有输入密码的。
注意:上述命令中的-i参数用于指定ssh私钥文件。
有关ssh命令的相关参数使用方法,能够参考ssh的帮助。以下:
ssh --help
到此有关ssh密钥随身携带的所有内容就结束了。