Linux 下不用输入密码通过ssh登入对方主机
LINUX程序员在日常工作中都会遇到远程登陆这样的问题,每次输入密码是不是很烦人.
我就在这整理一下,ssh证书到底是怎么搞的!
在linux下使用ssh认证,不输入密码访问另一台机器
在工作中由于常用到ssh登录其它机器,所在每台机器上做了ssh认证,这样就不用每次都输入繁琐的密码。
有两台机器:server_1和server_2
账号都为:work
转到work账号下:su-work
运行:ssh-keygen-d(一路回车下去)
命令输出为:
Enterfileinwhichtosavethekey(/home/work/.ssh/id_dsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/home/work/.ssh/id_dsa.
Yourpublickeyhasbeensavedin/home/work/.ssh/id_dsa.pub.
Thekeyfingerprintis:
32:21:e1:3b:7d:6e:de:4b:39:da:af:38:fe:90:40:61
work@server_1.server.com
在/home/work目录下就产生了.ssh的隐含目录,进入些目录下产生两个文件:
id_dsa------------私钥文件
id_dsa.pub------------公钥文件
将id_dsa.pub复制一份文件名为:authorized_keys2
并将authorized_keys2的属性改为600即文件所属用户有读和写的权限,组用户和其它用户禁止读写,用命令:
代码:
cpid_dsa.pubauthorized_keys2
chmod600authorized_keys2
同样在server_2上做以上操作,下一步就实现真正的ssh认证了:
将server_1上/home/work/.ssh目录下的id_dsa.pub公钥文件拷到server_2的/home/work/.ssh目录下(注意:不要覆盖掉server_2的id_dsa.pub,拷时要改名)如:
代码:
[work@server_1.ssh]$scpid_dsa.pub
[email=work@server_2:.ssh/server_1.pub]work@server_2:.ssh/server_1.pub[/email]
在server_2的/home/work/.ssh目录下就有了如下文件:
authorized_keys2
id_dsa
id_dsa.pub
server_1.pub
用命令:
代码:
catserver_1.pub>> authorized_keys2
(注意一定要用追加操作">>"不能用">")
这样server_1到server_2的ssh认证就做好了。在server_1上用命令:
代码:
ssh
[email=work@server_2]work@server_2[/email]
就直接登录到server_2上,而不用输入密码了。
server_2到server_1的认证同上操作即可。======================================================
另外一种方法
SSH 不输入密码连接远程 Linux 主机
#ssh-keygen
生成密钥,在生成过程中会要求输入passphrase,这个是用来保护私钥的使用的,即每次你使用私钥的时候需要先输入这个密码,因此这里不要输入任何字符,直接回车。
#ssh-copy-id-i/root/.ssh/[email protected]
192.168.0.1为远程主机