网络有很多关于实现本地免密码登录linux服务器(windows版的服务器我就不说了,一般都不用用windows做服务器)
假设 A 为客户机器,B为目标机;
假设 A 为客户机器,B为目标机
要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa
做法:
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;
ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
具体方法如下:
ssh-keygen -t rsa
然后全部回车,采用默认值.
这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。
(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。
这句命令是非常好用的: scp ./id_rsa.pub username@www.server.com:~/.ssh/authorized_keys而一些其他的命令
像什么ssh-copy-id -i id_rsa.pub username@www.server.com 这样的命令有点坑,
如果你对linux 用户管理方面非常熟那没事儿,万一你要和我似的是linux小菜鸟,那你就要GG了,因为权限的原因很多时候你虽然把你的公钥上传
到服务器了!用户目录下.ssh/authorized_keys这个文件里面有公钥的记录,但是你就是没法儿免密码登录,特别是本地如果是windows想登录linux服务器,具体什么原因,我也不知道,哈哈,感觉说了一大推的废话。