当前位置: 首页 > Linux

SSH免密登录

时间:2023-04-06 22:23:34 Linux

A为本地主机(即用来控制其他主机的机器);B为远程主机(即被控机Server),如ip为172.24.253.2;A和B的系统都是A上的Linux命令:#ssh-keygen-trsa(连续回车三次,即本地生成公钥和私钥,不设置密码)#sshroot@172.24.253.2"mkdir.ssh;chmod0700.ssh"(需要密码,注意:.ssh的权限必须设置为700)#scp~/.ssh/id_rsa.pubroot@172.24.253.2:.sshB:#touch/root/上的/id_rsa.pub(需要输入密码)命令。ssh/authorized_keys(如果这个文件已经存在,跳过这个)#chmod600~/.ssh/authorized_keys(#注意:一定要把~/.ssh/authorized_keys的权限改成600,这个文件是用来保存ssh的client生成的公钥可以修改server的ssh服务器配置文件/etc/ssh/sshd_config指定其他文件名)#cat/root/.ssh/id_rsa.pub>>/root/.ssh/authorized_keys(将id_rsa.thepub的内容添加到authorized_keys中,注意不要使用>,否则原来的内容会被清除,其他人无法使用原来的key登录)返回机器A:#sshroot@172.24.253.2(no需要密码,登录成功)如果在生成密钥对的时候指定了其他文件名(或者需要控制N台机器,此时会生成多对密钥),需要使用参数-i来指定私钥文件#sshroot@172.24.253.2-i/path/to/your_id_rsascp是一样的,比如:scp-i/root/.ssh/id_rsa./xxx192.168.102.158:/home/wwy/bak因为ssh命令默认会使用~/.ssh/id_rsa作为私钥文件登录,如果需要连接多台服务器,不想每次使用ssh命令都指定一个私钥文件,可以可以在ssh客户端配置全局配置文件/etc/ssh/ssh_config(或本地配置文件)~/.ssh/config,如果文件不存在,则创建一个副本),添加如下配置IdentityFile/path/to/your_id_rsa.您还可以为每个服务器指定一个主机配置:Host172.24.253.2IdentityFile/path/to/your_id_rsa